emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bzr repository ready?


From: Stephen J. Turnbull
Subject: Re: bzr repository ready?
Date: Sun, 22 Nov 2009 05:08:55 +0900

Karl Fogel writes:

 > Everyone:
 > 
 > It's a wiki.  Please edit it :-).  

OK, I've done so :-).  Please review my work, though; I'm far more
expert on git and VCS theory than I am on bzr pragmatics.

Specifically, one small change was I glossed the difference between
the "dev" branch (one branch for sequences of small independent
changes), vs. the SOME-TASKNAME branch (of which there will be many,
each containing a set of related commits).  For example, typically you
would delete a feature branch, but hang on to and reuse the "'dev"
branch.

The more important one is that AIUI, pushing directly from
SOME-TASKNAME is a bad idea.  Typically, you want to merge that branch
into trunk (the mirror branch), then commit (which automatically
pushes to upstream in the recommended setup as a bound branch).

The reason is that you want something like this, which is how Bazaar
will present the merge and commit workflow:

$ bzr log
3 Merge the fiddling-while-bits-rot branch aka SOME-TASKNAME
2 Merge concurrent development
1 Parent of SOME-TASKNAME
$ bzr log -n 0
3 Merge the fiddling-while-bits-rot branch aka SOME-TASKNAME
  3.3 Munge a bunch of fiddly little bits, all alike
  3.2 Merge from trunk
  3.1 Munge a fiddly little bunch of bits, all alike
2 Merge concurrent development
  2.1 One big ol commit
1 Parent of SOME-TASKNAME
  [several hundred thousand fiddly commits elided]

Not this, which is how Bazaar will present the "just push" workflow:

$ bzr log
5 Merge the fiddling-while-bits-rot branch aka SOME-TASKNAME
4 Munge a bunch of fiddly little bits, all alike
3 Merge from trunk
2 Munge a fiddly little bunch of bits, all alike
1 Parent of SOME-TASKNAME
$ bzr log -n 0
5 Merge the fiddling-while-bits-rot branch aka SOME-TASKNAME
4 Munge a bunch of fiddly little bits, all alike
3 Merge from trunk
  3.1 Merge concurrent development
    3.1.1 One big ol commit
2 Munge a fiddly little bunch of bits, all alike
1 Parent of SOME-TASKNAME
  [several hundred thousand fiddly commits elided]

Note how the latter inflates the importance of individual commits from
SOME-TASKNAME, while confusing the timing with which various commits
landed on the trunk.  (I'm not sure I got the above exactly right, but
such effects are definitely part of the way bzr log looks at the
branch's history.)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]