
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 21.03.12 12:12, schrieb Philippe Vaucher:
2) Having one's own branch of an SVN repository as one's own.
That could work, but it'll yield a repository where you have about 2-3 branches per developper (yes, people using git/mercurial often have lots of features/tests branches) that nobody cares about.
Why is that bad? At my work we are using svn and I have like 8 branches (not all of them are currently active I confess.) I put my branches not into /branches, but into /users/fbirbacher. This way noone has to care about them.
Also, storing test branches on the public repo is just silly imho.
I agree there is a difference between this approach on a company svn repo server and a public svn repo like boost. But still, even on boost I create my own sandbox branch to do development.
Simply creating a branch and then merging it back was a nightmare with svn. If you typed your command wrong, or did an error, then everyone suffered of your mistake. You then had to correct it in a rush before it created problems for others, etc.
With git/hg, when you do a mistake, you simply cancel your local merge and redo it again until you did the right thing, then you push.
This suggests 1st mistakes you do in svn cannot be repaired, and 2nd you will spot every mistake in git/hg before you push. As I understand, once you push to a public repo and then discover a mistake your mistakes will be just as visible as with svn. I agree there is a chance to find some errors before publishing, but with svn I spot errors in commands I run on my working copy easily before committing.
To be honest, I feel that all the people that "cannot see the advantages of a DVCS" are people who either didn't try it, or tried it just enough to reassure themselves it wasn't worth it. Any tool can suck if you're not willing to *really* see what it's worth.
I feel you didn't try enough of svn: creating a branch and merging it back is really a simple thing to do in svn. cd someemtpydir svn co svn://server/svn/trunk . # create branch: svn cp ^/trunk ^/branches/my-branch -m "branch" # edit branch: svn switch . ^/branches/my-branch echo "new" > new.txt svn add new.txt svn ci -m "new file" # switch back to trunk and merge: svn switch ^/trunk . svn merge ^/branches/my-branch . # revise working copy before commit, or revert and try again # svn revert -R . svn ci -m "merged branch" So how would that go with git or hg? Would it be easier? Frank -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.17 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: keyserver x-hkp://pool.sks-keyservers.net iEYEARECAAYFAk9zVywACgkQhAOUmAZhnmrxdwCcCdp/BgPDgncVv/EhzwiT7Kgz jTIAn15VrrdubgssGk0u4JvxsiXPUEYG =yE/F -----END PGP SIGNATURE-----