--- wikisrc/mailing-lists/tech-repository.mdwn 2010/01/20 13:05:55 1.6 +++ wikisrc/mailing-lists/tech-repository.mdwn 2010/11/08 18:20:00 1.11 @@ -20,6 +20,49 @@ Please add/correct. ## Experiences in using the software +### Experiences with Fossil + +#### Aleksej Saushev (asau) + +I started using it before conversion tool were available +(basically it isn't available yet, to my knowledge Joerg is working on it), +in addition I wanted to start as soon as possible +and to try operation with no conversion tool available. +Thus I've tried to simulate working with "vendor branches". + +For now Fossil lacks some essential features and has other severe problems: + +1. No support for vendor branches. +* Redundant to "There's no support for importing vendor source"? +1. It is impossible to merge between trees growing from the very root. +The initial commit is too special, this prevents using these trees for vendor branches. +* Fixed in [4e3cd6ce4e]. +1. There's no support for importing vendor source, +even "addremove" command isn't in trunk at the time of writing. +* It has been merged to trunk and is part of the pkgsrc version. +1. Merge state sticks. You can't undo it. +* Not sure what you mean, but "revert" resets the merge state since [d13054ce84]. +1. You can't amend your source when you've just merged, you are forced to commit after merge. +* To clarify, the merge has to be committed first, no separate commits are possible from the checkout before that. +1. You can't tune diff command to ignore RCS keywords. +* Since RCS keywords are not really a native command, it is no surprise. An external diff program can be used for this purpose though. +1. You can't diff single file between two given versions. +* diff --from version1 --to version2 path/to/file +1. There's no way to change commit messages. +* easily done via ui. +1. There's no documented way to select commit messages of current branch, or branch by given commit id. +Or there's a bug preventing it. +* fossil info +1. Commands are underdocumented, usage messages don't list many available options. +This applies to trunk at least, there's a branch that states documentation as its goal. +1. There's no convenient way to look at commit contents: files affected, diff. +* fossil ui and use a web browser + +Some of above problems are reported. + +Note, all problems above are usability problems, I didn't explore e.g. scalability, +Joerg did and had problems, but this is another story. + ### Experiences with git please fill in @@ -28,6 +71,64 @@ please fill in please fill in +### Experiences with Bazaar + +#### Jonathan Perkin (sketch) + +We use bzr at work (MySQL), and while it has a number of problems, it does make dev work easy. + +The Good + +* easy to use +* shared repositories keep local disk usage down +* commercial backing (Canonical) +* cross-platform (works on Windows) +* numerous GUI available + +The Bad: + +* slow +* requires python + +The Ugly: + +* can be really slow +* changing repository formats is a hassle + +A basic example workflow + +
+# create a local shared repository. all objects are held in a .bzr sub-directory, with branches essentially a lightweight checkout
+$ bzr init-repo bzr
+$ cd bzr
+
+# fetch HEAD, will take a long time, depending on connectivity
+$ bzr branch bzr+ssh://bzr.netbsd.org/netbsd-trunk
+
+# fetch netbsd-5, as we already have the majority of the code in netbsd-trunk (and therefore .bzr), this takes a fraction of the time
+$ bzr branch bzr+ssh://bzr.netbsd.org//netbsd-5
+
+# ok, let's do some dev work
+$ bzr branch netbsd-trunk netbsd-trunk-sketch-fix-msk
+$ cd netbsd-trunk-sketch-fix-msk; hack hack hack
+
+# the usual cycle of hack/commit/merge
+$ bzr diff # show uncommitted diffs
+$ bzr commit # commit to local clone
+$ bzr merge ../netbsd-trunk # update clone to latest local trunk, OR
+$ bzr merge bzr+ssh://bzr.netbsd.org/netbsd-trunk # merge directly from upstream
+
+# publish our tree for others to review/hack on
+$ bzr push bzr+ssh://bzr.netbsd.org/netbsd-trunk-fix-msk
+
+# got reviewed/tested, let's push it
+$ bzr merge bzr+ssh://bzr.netbsd.org/netbsd-trunk
+$ bzr missing bzr+ssh://bzr.netbsd.org/netbsd-trunk # show changeset differences
+$ bzr push bzr+ssh://bzr.netbsd.org/netbsd-trunk
+
+ +I personally find this approach a lot more natural than git's way of managing branches itself inside a single working directory. + *** ## Conversion experiences @@ -100,4 +201,4 @@ Next try: hg convert on pkgsrc helps it to cope with the output of cvs rlog -N -r1.66 pkgsrc/databases/rrdtool/Makefile (that's the easy one) but then it tries to parse the output of (eg) cvs rlog -N -r1.19 pkgsrc/graphics/dcraw/Makefile and it's not clear to me how it could hope to get that one right just from cvs rlog, and all alternatives are going to be rather tedious -and I'm still not planning to learn Python this week. +and I'm still not planning to learn Python this week. If you feel more energetic, feel free to hand over patches.