All of lore.kernel.org
 help / color / mirror / Atom feed
* More on svn workflows
@ 2010-01-23 22:57 tom fogal
  0 siblings, 0 replies; only message in thread
From: tom fogal @ 2010-01-23 22:57 UTC (permalink / raw)
  To: git

I have recently (1, 1.5 months ago?) started using a workflow similar
to the one described here:

  http://www.spinics.net/lists/git/msg109896.html

(short summary: work in private branch, "merge --no-ff" into svn
upstream, "merge" from svn upstream.)

... with the minor modification that I use "--squash" instead of
"--no-ff".  If I use --no-ff, I end up with a lot of "merge from master
into <myprivatebranch>" commits on my master branch before I dcommit.
It also merges in a lot of history that I feel like I shouldn't see--
that is, both the svn commit and my private branch's commit, and I'm
worried about what might happen if I dcommit that.  That said, I might
be in that situation because I used --squash 3 or 4 times before I
realized I was misremembering that thread.

Anyway, my current issue is that whenever I do a `git commit' after a
"merge --squash", I end up with *everything* I've done since starting
the branch in the commit message.  To be more explicit, say I've got
this setup:

  o--o--o                 master
         \
          o--o--o         private branch started

then I'll update master and merge it into my private branch:

  o--o--o--------D          master
         \        \
          A--B--C--o        private

test, merge --squash private into master and dcommit:

  o--o--o--------D---A'--B'--C'--D''     master
         \        \ /
          A--B--C--D'                    private

something happens upstream:

  o--o--o--------D---A'--B'--C'--D''--E        master
         \        \ /
          A--B--C--D'                          private

which I merge to private:

  o--o--o--------D---A'--B'--C'--D''--E        master
         \        \ /                  \
          A--B--C--D'-------------------E'     private

I do some work, commit F, and decide I want to push it upstream, so
I'll do a merge --squash into master:

  o--o--o--------D---A'--B'--C'--D''--E-------F'   master
         \        \ /                  \     /
          A--B--C--D'-------------------E'--F      private

Now the issue is when I `git commit' the merge from private, git says
this is a "squashed commit of the following", and lists the commit
messages for A, B, C, D, D', D'' E, E' and F.  I really just want the
commit message for "F" in this case -- every other message is already
on the trunk, in a different commit.  This wasn't such a big issue
at first: git picked up a few extra commits, so I hacked out the log
messages before committing them on master.  After doing this for a
while though, there's something like 100 commits I have to wade through
while doing this, and it's only going to get worse and worse.

On the other hand, I'm sure there's some option I could use so "git
commit" would startup with an empty commit message in this case, but I
do *want* the partial history, as it helps me design the commit message
that I want the svn trunk's history to have.

What am I doing wrong?

-tom

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-01-23 23:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-23 22:57 More on svn workflows tom fogal

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.