Axel Dörfler wrote: > Niels Reedijk <niels.reedijk@xxxxxxxxx> wrote: >> From a feature point of view it seems that bzr might be a good >> candidate, because it efficiently mimics Subversion's repository <-> >> working copy relation while also providing tools for working locally. >> This IMO is a very definite characteristic of our current development >> process, and one that we should keep. > > Agreed, bazaar doesn't look bad - the only downside I found is that it > cannot track file copies, ie. the history will be lost when copying > files; the copied file will just be a new file with no history. > Not sure if that's really that bad, though. The rest seems to be very > comparable to hg. I've just tried a test with hg (I've got version 1.4.2 installed) and "hg copy" and "hg rename" do slightly weird things. They obviously store some metadata as it's possible to view the historical commit messages with hg log --follow, but it just seems to add the entire file as if it was new - the patches generated from the new file are not relative to the previously named one, and it doesn't seem possible to diff across move or copy bounds. At least bzr does the right thing for renames/mv, but it's a shame copies aren't handled - it seems they decided against it as it's hard to define what should happen for merging if one branch has a copied file and the other has a change to the original (along with other complicated cases). Simon -- Moving a file, making a change, then committing. Bzr handles the history and diffs and patches correctly [1], whereas mercurial needs a special flag to hg log to pull up the commit messages, and diffs and patches don't seem to work [2]. [1] sjt59@megatron:~/TestDVCS/bzr> bzr log -vp testfile2.txt ------------------------------------------------------------ revno: 3 committer: Simon Taylor <sjt59@email> branch nick: bzr timestamp: Tue 2010-06-29 13:23:10 +0100 message: Different text renamed: testfile.txt => testfile2.txt modified: testfile2.txt diff: === renamed file 'testfile.txt' => 'testfile2.txt' --- testfile.txt 2010-06-29 12:22:24 +0000 +++ testfile2.txt 2010-06-29 12:23:10 +0000 @@ -1,3 +1,3 @@ testing line 1 -and line 2 - changed +and line 2 - changed again and line 3 ------------------------------------------------------------ revno: 2 committer: Simon Taylor <sjt59@email> branch nick: bzr timestamp: Tue 2010-06-29 13:22:24 +0100 message: Different text modified: testfile.txt diff: === modified file 'testfile.txt' --- testfile.txt 2010-06-29 12:21:39 +0000 +++ testfile.txt 2010-06-29 12:22:24 +0000 @@ -1,3 +1,3 @@ testing line 1 -and line 2 +and line 2 - changed and line 3 ------------------------------------------------------------ revno: 1 committer: Simon Taylor <sjt59@email> branch nick: bzr timestamp: Tue 2010-06-29 13:21:39 +0100 message: Added test file added: testfile.txt diff: === added file 'testfile.txt' --- testfile.txt 1970-01-01 00:00:00 +0000 +++ testfile.txt 2010-06-29 12:21:39 +0000 @@ -0,0 +1,3 @@ +testing line 1 +and line 2 +and line 3 [2] sjt59@megatron:~/TestDVCS/hg> hg log -vpf testfile2.txt changeset: 2:7d7fe6565c1f user: Simon Taylor <sjt59@xxxxxxxxx> date: Tue Jun 29 13:36:02 2010 +0100 files: testfile.txt testfile2.txt description: Changed text again diff -r 912e82035539 -r 7d7fe6565c1f testfile2.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testfile2.txt Tue Jun 29 13:36:02 2010 +0100 @@ -0,0 +1,3 @@ +testing line 1 +and line 2 - changed again +and line 3 changeset: 1:912e82035539 user: Simon Taylor <sjt59@xxxxxxxxx> date: Tue Jun 29 13:35:07 2010 +0100 files: testfile.txt description: changed text changeset: 0:f5a61a620078 user: Simon Taylor <sjt59@xxxxxxxxx> date: Tue Jun 29 13:32:19 2010 +0100 files: testfile.txt description: added test file