0

I am used to TFS labels and change sets to easily synchronize work from dev branch to test and then production branches. I cant get my head around this in SVN... For starters how do I create a change set (change list as it is called here?)? Must I use a command line tool for that? I am using VS2015 and VSN plug in 2.5.12 Same goes for creating a label - preferably one that constitutes a group of selected change sets - and then publish it to another branch?

vitr
  • 6,766
  • 8
  • 30
  • 50
Rea
  • 1
  • 1

2 Answers2

0

You could use tortoiseSVN gui tool for windows. it's free.

SVN work with trunk. each and every commit goes to a same trunk (like master branch in git). at final time you could merge with old release using tortoiseSVN merge(if you are using windows go to your source folder right click and you will get tortoiseSvn option).

0

A TFS change set is (somewhat) comparable to an SVN commit. A change list is merely an client tool for your local workspace organization(you should ignore it until you mastered the basics). A commit is usually performed on a single branch most commonly on the "master" branch called "trunk". Each commit is addressed by a natural number which is linearly increased, so called revision.

You can merge a commit from one branch to another however, you will create a new commit on this way(the merged commit is noted inside svn data structure).

A label in SVN is called a tag and is a simple copy of any state of a specific folder, usually a branch or trunk. Usually you have a specific repository structure for placing branches, trunk and tags:

root

  • branches/
  • tags/
  • trunk

An example will shed light into this:

  1. you created a bugfix on /branches/release_1.0 and committed it (create rev.7)
  2. you want to "merge" the bug into your trunk, so that future releases will keep this bugfix . For this you merge rev. 7 from /branches/release_1.0 to /trunk therefore creating rev. 8 (in history log you can see that rev. 8 is basically rev. 7 merged into trunk )

  3. you want to tag bugfixed version as "release 1.1" by copying /branches/release_1.0 to /tags/release_1.1 creating a new rev.9 in history log you will see that /tags/release_1.1 is a copy of /branches/release_1.0 from rev. 8

There is nothing confusing around SVN. It is just a quite simple versioned filesystem and lacks a lot of sophisticated features(like proper merging or branching abstractions). Most people coming from newer VCS tend to map their current abstractions into SVN features (which are usually not existent in SVN) and becoming very distracted.

Peter Parker
  • 29,093
  • 5
  • 52
  • 80