Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
121 lines (89 sloc) 3.21 KB
Inconsistencies between git and darcs.
Summary:
- git allows you to create a file named '*';
darcs doesn't (though it doesn't throw an
error when you try). Similarly with '?'.
- when you try to delete '*', git deletes
everything, treating '*' as wildcard.
darcs gives a nonexistent file message.
- when you delete a file and then try to
create a file with the same name, git gives
you an error "Resource Exists". But git doesn't
allow you to modify the resource either.
darcs behaves better.
See transcript below:
Prelude> :m + Data.FileStore
Prelude Data.FileStore> let d = darcsFileStore "d"
Prelude Data.FileStore> let a = Author "j" ""
Prelude Data.FileStore> create d "aaa" a "n" "hi"
Prelude Data.FileStore> index d
["aaa"]
Prelude Data.FileStore> create d "*" a "n" "hi"
Prelude Data.FileStore> index d
["aaa"]
Prelude Data.FileStore> delete d "*" a "n"
*** Exception: UnknownError: Could not darcs record *
darcs failed: None of the files you specified exist!
Prelude Data.FileStore> index d
["aaa"]
Prelude Data.FileStore> delete d "aaa" a "n"
Prelude Data.FileStore> index d
[]
Prelude Data.FileStore> create d "aaa" a "n" "hi"
Prelude Data.FileStore> index d
["aaa"]
Prelude Data.FileStore> let g = gitFileStore "g"
Prelude Data.FileStore> initialize g
Prelude Data.FileStore> index g
[]
Prelude Data.FileStore> create g "*" a "hi" "contents"
Prelude Data.FileStore> index g
["*"]
Prelude Data.FileStore> create g "aa" a "hi" "contents"
Prelude Data.FileStore> index g
["*","aa"]
Prelude Data.FileStore> delete g "*" a "hi"
Prelude Data.FileStore> index g
[]
Prelude Data.FileStore> create g "aa" a "hi" "contents"
*** Exception: ResourceExists
Prelude Data.FileStore> latest g "aa"
"ba42127ed54a804570fc0fd3b979d2bc1ebf1fd7"
Prelude Data.FileStore> modify g "aa" "ba412" a "hi" "contents"
*** Exception: NotFound
-------------------------------------
Note: git will detect renames in "log" and "whatchanged"
if you supply the "-M" flag:
jgm@protagoras:~/tmp/ebo/aaa [26]% git whatchanged
commit 06676810341c00b306b1afc6d1ab7daaf86daa96
Author: John MacFarlane <jgm@berkeley.edu>
Date: Fri Jan 16 18:54:34 2009 -0800
added new a
:000000 100644 0000000... e69de29... A a
commit c46967e899d01edb552d37689c6b0e9861d6e458
Author: John MacFarlane <jgm@berkeley.edu>
Date: Fri Jan 16 18:54:16 2009 -0800
moved a to b
:100644 000000 e69de29... 0000000... D a
:000000 100644 0000000... e69de29... A b
commit 4b86a6b28537593d362c18357f8cc0ac3a493ecf
Author: John MacFarlane <jgm@berkeley.edu>
Date: Fri Jan 16 18:54:08 2009 -0800
added a
:000000 100644 0000000... e69de29... A a
jgm@protagoras:~/tmp/ebo/aaa [27]% git whatchanged -M
commit 06676810341c00b306b1afc6d1ab7daaf86daa96
Author: John MacFarlane <jgm@berkeley.edu>
Date: Fri Jan 16 18:54:34 2009 -0800
added new a
:000000 100644 0000000... e69de29... A a
commit c46967e899d01edb552d37689c6b0e9861d6e458
Author: John MacFarlane <jgm@berkeley.edu>
Date: Fri Jan 16 18:54:16 2009 -0800
moved a to b
:100644 100644 e69de29... e69de29... R100 a b
commit 4b86a6b28537593d362c18357f8cc0ac3a493ecf
Author: John MacFarlane <jgm@berkeley.edu>
Date: Fri Jan 16 18:54:08 2009 -0800
added a
:000000 100644 0000000... e69de29... A a
Something went wrong with that request. Please try again.