I forgot to mention yesterday that "git rebase" is a fairly destructive 
operation; it actually modifies history, unlike most of git's operations 
which add new commits without affecting pre-existing ones.

In particular, the checksum for a commit (which git log and other tools 
use to determine what commit are "unmerged" between branches) depends on 
that commit's predecessors (recursively, all the way to the root of the 
history tree).  Rebasing a commit, even if it doesn't require 
modifications due to merge conflicts, changes that lineage and removes 
git's ability to determine that branch A and branch B have commits in 
common.  For example, if I rebase a branch, and Gabriel merges the 
result onto his copy of the original branch, we'll have an even more 
tangled history than before.  (Fortunately, Gabriel is likely to get a 
clue that something is wrong when he has a huge set of merge conflicts 
to deal with.)

What this means then, is that when a branch is rebased, the "proper" 
thing to do is to abandon the previous version of the branch (and it's 
really important to get everyone who's using it to do likewise).  The 
rebase command does this for you by default, but it can't affect remote 
repositories (which is a really good reason to avoid rebasing commits 
that have already been pushed to a public repository).  When I sent out 
the mail earlier I really should have added "Luke and Gabriel, please 
use these rebased branches as alternatives to the old versions, and 
whatever you do, don't merge them back onto the originals."

So, if you guys decide to use Gabriel's version as the base and merge 
the Django-side work onto it, I'd recommend something like:

$ git remote add dwins git://github.com/dwins/geonode.git
$ git fetch dwins gs_security_rebase
$ git fetch dwins dj_acl_service
$ git checkout dwins/gs_security_rebase -b gs_security_rebase
$ git merge dwins/dj_acl_service

Throw in some conflict resolution, and this should produce a revision 
with the Django stuff AND the GeoServer stuff that is based on a 
relatively recent version of our "trunk" development line.  If there is 
work left to do, I'd suggest doing that work on this merged branch.

--
David Winslow
OpenGeo - http://opengeo.org/

Reply via email to