Hey all.  Luke showed me yesterday some weird behavior during the merge 
of the security branch with his master.  (Some changes that were almost 
definitely not intended were being made as part of the merge; in 
particular the templates for some of the csw transactions were being 
removed.)  I spent more time than I should have trying to track down 
where this change was coming from, but the revision history around the 
security stuff is quite complicated.

So, I just spent an hour or so rebasing both Luke's master branch (where 
the django side of the security integration is) and Gabriel's security 
branch (where the GeoServer side is) onto master.  I did a test merge as 
well and it looks like the spurious commits are gone, so hurrah.  I'm 
not publishing a merged commit though because I was kind of guessing 
during the conflicts (and there were a number of merge conflicts even 
during the rebase).  Luke and Gabriel, you should check things out.

My results are on my github fork at:
http://github.com/dwins/geonode/tree/gs_security_rebase
http://github.com/dwins/geondoe/tree/dj_acl_publisher


So, why a rebase?  git rebase can do a lot of stuff, but in its simplest 
invocation it simply picks up the current branch and rewrites it as 
though it were based off another one.  (you can look at the pretty ASCII 
art in the man page for git rebase here: 
http://kernel.org/pub/software/scm/git/docs/git-rebase.html) Along the 
way it:
   * drops commits that are already on the new base (!)
   * folds everything up so it looks like a straight development line 
(no branching within the branch, even if multiple developers have been 
hacking on it)

I never did figure out what revision was erasing the CSW templates, but 
after the rebase they were there again on groldan's security branch.

If you would rather redo the changes yourself (took me about 20-30 
minutes each for geoserver and django stuff, would probably be quicker 
for someone who's been looking at the code recently) here are the 
commands I used:

git checkout groldan/security -b gs_security_rebase
git rebase origin/master
while [git reports conflicts]
do
   git mergetool
   git rebase --continue
done

git checkout ltucker/master -b dj_acl_publisher
git rebase origin/master
while [git reports conflicts]
do
   git mergetool
   git rebase --continue
done

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

Reply via email to