{"thread":{"id":"22364","subject":"More on svn workflows","startedAt":"2010-01-23T22:57:17Z","lastAt":"2010-01-23T22:57:17Z","messageCount":1,"participants":["tom fogal"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"132519","messageId":"auto-000021753828@sci.utah.edu","threadId":"22364","inReplyTo":null,"subject":"More on svn workflows","fromName":"tom fogal","fromEmail":"tfogal@alumni.unh.edu","sentAt":"2010-01-23T22:57:17Z","receivedAt":"2010-01-23T22:57:17Z","isPatch":false,"sender":{"key":"tfogal@alumni.unh.edu","avatar":"https://gravatar.com/avatar/a2f71bfbe12b2b73cad0be2386d554aa403fff7a89df2f79e812c97c7eab0498?d=mp&s=160"},"body":"I have recently (1, 1.5 months ago?) started using a workflow similar\nto the one described here:\n\n  http://www.spinics.net/lists/git/msg109896.html\n\n(short summary: work in private branch, \"merge --no-ff\" into svn\nupstream, \"merge\" from svn upstream.)\n\n... with the minor modification that I use \"--squash\" instead of\n\"--no-ff\".  If I use --no-ff, I end up with a lot of \"merge from master\ninto <myprivatebranch>\" commits on my master branch before I dcommit.\nIt also merges in a lot of history that I feel like I shouldn't see--\nthat is, both the svn commit and my private branch's commit, and I'm\nworried about what might happen if I dcommit that.  That said, I might\nbe in that situation because I used --squash 3 or 4 times before I\nrealized I was misremembering that thread.\n\nAnyway, my current issue is that whenever I do a `git commit' after a\n\"merge --squash\", I end up with *everything* I've done since starting\nthe branch in the commit message.  To be more explicit, say I've got\nthis setup:\n\n  o--o--o                 master\n         \\\n          o--o--o         private branch started\n\nthen I'll update master and merge it into my private branch:\n\n  o--o--o--------D          master\n         \\        \\\n          A--B--C--o        private\n\ntest, merge --squash private into master and dcommit:\n\n  o--o--o--------D---A'--B'--C'--D''     master\n         \\        \\ /\n          A--B--C--D'                    private\n\nsomething happens upstream:\n\n  o--o--o--------D---A'--B'--C'--D''--E        master\n         \\        \\ /\n          A--B--C--D'                          private\n\nwhich I merge to private:\n\n  o--o--o--------D---A'--B'--C'--D''--E        master\n         \\        \\ /                  \\\n          A--B--C--D'-------------------E'     private\n\nI do some work, commit F, and decide I want to push it upstream, so\nI'll do a merge --squash into master:\n\n  o--o--o--------D---A'--B'--C'--D''--E-------F'   master\n         \\        \\ /                  \\     /\n          A--B--C--D'-------------------E'--F      private\n\nNow the issue is when I `git commit' the merge from private, git says\nthis is a \"squashed commit of the following\", and lists the commit\nmessages for A, B, C, D, D', D'' E, E' and F.  I really just want the\ncommit message for \"F\" in this case -- every other message is already\non the trunk, in a different commit.  This wasn't such a big issue\nat first: git picked up a few extra commits, so I hacked out the log\nmessages before committing them on master.  After doing this for a\nwhile though, there's something like 100 commits I have to wade through\nwhile doing this, and it's only going to get worse and worse.\n\nOn the other hand, I'm sure there's some option I could use so \"git\ncommit\" would startup with an empty commit message in this case, but I\ndo *want* the partial history, as it helps me design the commit message\nthat I want the svn trunk's history to have.\n\nWhat am I doing wrong?\n\n-tom\n"}]}