{"thread":{"id":"6081","subject":"Re: Change in git-svn dcommit semantics?","startedAt":"2006-12-19T21:12:05Z","lastAt":"2006-12-22T14:09:01Z","messageCount":13,"participants":["Brian Gernhardt","Jakub Narebski","Seth Falcon","Johannes Schindelin","Jeff King","Eric Wong","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"297933","messageId":"m2mz5jegka.fsf@ziti.local","threadId":"6081","inReplyTo":null,"subject":"Change in git-svn dcommit semantics?","fromName":"Seth Falcon","fromEmail":"sethfalcon@gmail.com","sentAt":"2006-12-19T21:12:05Z","receivedAt":"2006-12-19T21:12:05Z","isPatch":false,"sender":{"key":"sethfalcon@gmail.com","avatar":"https://gravatar.com/avatar/fd62fe73d3013b12fce71d5269ec52eaca3c4cee479efc6eea3603d6f1d8bf8d?d=mp&s=160"},"body":"Hi Eric,\n\nI just updated to the latest git/git-svn (on branch 'master') and the\nworkflow I've been using no longer seems to work:\n\n   # review the commits I'm going to send to svn\n   ziti:~/proj/bioc-2.0-git seth$ git log remotes/git-svn..HEAD\n   \n   # now send them\n   ziti:~/proj/bioc-2.0-git seth$ git svn dcommit remotes/git-svn..HEAD\n\n   fatal: ambiguous argument\n   'refs/remotes/git-svn..remotes/git-svn..HEAD': unknown revision or\n   path not in the working tree.  Use '--' to separate paths from\n   revisions 32768 at /Users/seth/scm/bin/git-svn line 2190\n           main::safe_qx('git-rev-list', '--no-merges', 'refs/remotes/git-svn..remotes/git-svn..HEAD') called at /Users/seth/scm/bin/git-svn line 610\n           main::dcommit('remotes/git-svn..HEAD') called at /Users/seth/scm/bin/git-svn line 197\n\n\nAt this point, my last commit seems to have been reset (although the\nchanges are thankfully still in my working tree).  If this happens to\nyou, you can recover the last commit like:\n\n  git commit -a -v -c ORIG_HEAD\n\nAnd it seems that the new interface requires no extra args:\n\n git svn dcommit\n\nThe new interface seems ok until things like \n\n  git svn dcommit remotes/git-svn..HEAD~2\n\nare allowed (if ever).  But it would be nice for the failure mode to\nnot undo commits :-)\n\n+ seth\n\ngit version 1.4.4.2.gee60-dirty\n"},{"id":"297416","messageId":"20061219220900.GA3148@localdomain","threadId":"6081","inReplyTo":"m2mz5jegka.fsf@ziti.local","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2006-12-19T22:09:00Z","receivedAt":"2006-12-19T22:09:00Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"Seth Falcon <sethfalcon@gmail.com> wrote:\n> Hi Eric,\n> \n> I just updated to the latest git/git-svn (on branch 'master') and the\n> workflow I've been using no longer seems to work:\n> \n>    # review the commits I'm going to send to svn\n>    ziti:~/proj/bioc-2.0-git seth$ git log remotes/git-svn..HEAD\n>    \n>    # now send them\n>    ziti:~/proj/bioc-2.0-git seth$ git svn dcommit remotes/git-svn..HEAD\n> \n>    fatal: ambiguous argument\n>    'refs/remotes/git-svn..remotes/git-svn..HEAD': unknown revision or\n>    path not in the working tree.  Use '--' to separate paths from\n>    revisions 32768 at /Users/seth/scm/bin/git-svn line 2190\n>            main::safe_qx('git-rev-list', '--no-merges', 'refs/remotes/git-svn..remotes/git-svn..HEAD') called at /Users/seth/scm/bin/git-svn line 610\n>            main::dcommit('remotes/git-svn..HEAD') called at /Users/seth/scm/bin/git-svn line 197\n> \n> \n> At this point, my last commit seems to have been reset (although the\n> changes are thankfully still in my working tree).  If this happens to\n> you, you can recover the last commit like:\n> \n>   git commit -a -v -c ORIG_HEAD\n\nHuh?  safe_qx should've croaked or died, causing git-svn to exit before\nit could do any damage (via git-reset or git-rebase).  dcommit is not\ncalled inside any eval blocks, either...\n\n> And it seems that the new interface requires no extra args:\n> \n>  git svn dcommit\n> \n> The new interface seems ok until things like \n> \n>   git svn dcommit remotes/git-svn..HEAD~2\n> \n> are allowed (if ever).  But it would be nice for the failure mode to\n> not undo commits :-)\n \nBefore, the 'remotes/git-svn..HEAD' argument meant absolutely nothing to\ndcommit (it silently ignored it).  Nowadays, you only need 'HEAD~2', the\n'remotes/git-svn..' is already implied.\n\n\tgit-svn dcommit HEAD~2\n\nNot specifying any argument implies that it is called with 'HEAD'\n\n-- \n"},{"id":"296269","messageId":"94FF72E0-F8BD-4773-803E-F179754BF0ED@silverinsanity.com","threadId":"6081","inReplyTo":"m2mz5jegka.fsf@ziti.local","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2006-12-19T23:02:14Z","receivedAt":"2006-12-19T23:02:14Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"\nOn Dec 19, 2006, at 4:12 PM, Seth Falcon wrote:\n\n> git version 1.4.4.2.gee60-dirty\n> (the dirty is a hand edit to Makefile for prefix)\n\nJust FYI:  You can save Makefile variables in a \"config.mak\" file  \ninstead of having to dirty your working tree (and dealing with  \nconflicts, etc).  For example:\n\ncat > config.mak <<EOF\nprefix=/your/prefix/path/here/\nEOF\n\nMine also has a few variables like \"COLLISION_CHECK=paranoid\" and my  \nown prefix.\n\n"},{"id":"296360","messageId":"Pine.LNX.4.63.0612200053550.19693@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"6081","inReplyTo":"94FF72E0-F8BD-4773-803E-F179754BF0ED@silverinsanity.com","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-12-19T23:57:15Z","receivedAt":"2006-12-19T23:57:15Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 19 Dec 2006, Brian Gernhardt wrote:\n\n> Mine also has a few variables like \"COLLISION_CHECK=paranoid\" and my own \n> prefix.\n\nJust to wake sleeping tigers: have you done a \"grep COLLISION_CHECK *\" \nrecently (where recently means any date after May 3rd, 2005)?\n\nCiao,\nDscho\n"},{"id":"297588","messageId":"C2881A17-27F7-467C-B353-189BB7DBFD1E@silverinsanity.com","threadId":"6081","inReplyTo":"Pine.LNX.4.63.0612200053550.19693@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2006-12-20T00:38:58Z","receivedAt":"2006-12-20T00:38:58Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"\nOn Dec 19, 2006, at 6:57 PM, Johannes Schindelin wrote:\n\n>> Mine also has a few variables like \"COLLISION_CHECK=paranoid\" and  \n>> my own\n>> prefix.\n>\n> Just to wake sleeping tigers: have you done a \"grep COLLISION_CHECK *\"\n> recently (where recently means any date after May 3rd, 2005)?\n\nOh, well, that's cute.  It's a configuration option that doesn't  \ntouch any code at all...  Not that I really cared about the check, I  \njust thought it was a nice paranoid thing to activate and I like a  \ncertain amount of paranoia in my SCMs.  But maybe the description  \nshould be removed from the Makefile then?  Or better yet, collision  \nchecking could be put back in?\n\nAnd is there an easier way to find these things than \"git rev-list  \nHEAD | git diff-tree -r -s --stdin -SCOLLISION | xargs git show\"?  I  \ncobbled that together from poking around inside gitk (which mostly  \nworks in OS X, but has some issues that make me prefer the command  \nline).\n\n"},{"id":"296256","messageId":"ema1ba$2u9$1@sea.gmane.org","threadId":"6081","inReplyTo":"C2881A17-27F7-467C-B353-189BB7DBFD1E@silverinsanity.com","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-12-20T00:52:27Z","receivedAt":"2006-12-20T00:52:27Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Brian Gernhardt wrote:\n\n> And is there an easier way to find these things than \"git rev-list  \n> HEAD | git diff-tree -r -s --stdin -SCOLLISION | xargs git show\"?  I  \n> cobbled that together from poking around inside gitk (which mostly  \n> works in OS X, but has some issues that make me prefer the command  \n> line).\n\ngit log -p -SCOLLISIONS ? \n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n\n"},{"id":"297746","messageId":"7v3b7bnz6q.fsf@assigned-by-dhcp.cox.net","threadId":"6081","inReplyTo":"C2881A17-27F7-467C-B353-189BB7DBFD1E@silverinsanity.com","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-12-20T01:17:17Z","receivedAt":"2006-12-20T01:17:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Brian Gernhardt <benji@silverinsanity.com> writes:\n\n> And is there an easier way to find these things than \"git rev-list\n> HEAD | git diff-tree -r -s --stdin -SCOLLISION | xargs git show\"?  I\n> cobbled that together from poking around inside gitk (which mostly\n> works in OS X, but has some issues that make me prefer the command\n> line).\n\nI typically do:\n\n\tgit log --full-diff -p -SCOLLISION\n\nThe --full-diff option helps because it shows the diff for other\nfiles (that do not have different number of substring COLLISION\nin the pre and postimage) in the same commit as well.\n\n"},{"id":"294038","messageId":"m2zm9j6zdm.fsf@ziti.local","threadId":"6081","inReplyTo":"20061219220900.GA3148@localdomain","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Seth Falcon","fromEmail":"sethfalcon@gmail.com","sentAt":"2006-12-20T03:05:09Z","receivedAt":"2006-12-20T03:05:09Z","isPatch":false,"sender":{"key":"sethfalcon@gmail.com","avatar":"https://gravatar.com/avatar/fd62fe73d3013b12fce71d5269ec52eaca3c4cee479efc6eea3603d6f1d8bf8d?d=mp&s=160"},"body":"Eric Wong <normalperson@yhbt.net> writes:\n> Huh?  safe_qx should've croaked or died, causing git-svn to exit before\n> it could do any damage (via git-reset or git-rebase).  dcommit is not\n> called inside any eval blocks, either...\n\n*shrug* weird.  Looking at the code, I don't see how I could have seen\nwhat I think I did.  Reproducing the error in a sandbox doesn't show\nthe git-reset behavior.  So unless I can reproduce it, I must have\ndone something else funny.  Sorry for the noise.\n\n> Before, the 'remotes/git-svn..HEAD' argument meant absolutely nothing to\n> dcommit (it silently ignored it).  Nowadays, you only need 'HEAD~2', the\n> 'remotes/git-svn..' is already implied.\n>\n> \tgit-svn dcommit HEAD~2\n\nThat's convenient in that it requires less typing.  I will try to\nretrain my fingers.  I'm in the habit of reviewing the commits not in\nsvn with:\n\n  git log remotes/git-svn..HEAD\n\nAnd then editing the command like to be 'svn dcommit' instead of log.\n\nCheers,\n\n+ seth\n"},{"id":"295703","messageId":"m2vek76z9p.fsf@ziti.local","threadId":"6081","inReplyTo":"94FF72E0-F8BD-4773-803E-F179754BF0ED@silverinsanity.com","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Seth Falcon","fromEmail":"sethfalcon@gmail.com","sentAt":"2006-12-20T03:07:30Z","receivedAt":"2006-12-20T03:07:30Z","isPatch":false,"sender":{"key":"sethfalcon@gmail.com","avatar":"https://gravatar.com/avatar/fd62fe73d3013b12fce71d5269ec52eaca3c4cee479efc6eea3603d6f1d8bf8d?d=mp&s=160"},"body":"Brian Gernhardt <benji@silverinsanity.com> writes:\n\n> On Dec 19, 2006, at 4:12 PM, Seth Falcon wrote:\n>\n>> git version 1.4.4.2.gee60-dirty\n>> (the dirty is a hand edit to Makefile for prefix)\n>\n> Just FYI:  You can save Makefile variables in a \"config.mak\" file\n> instead of having to dirty your working tree (and dealing with\n> conflicts, etc).  For example:\n\nHey, thanks, that's much nicer :-)\n\n"},{"id":"294008","messageId":"emb77h$cf2$1@sea.gmane.org","threadId":"6081","inReplyTo":"7v3b7bnz6q.fsf@assigned-by-dhcp.cox.net","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-12-20T11:38:57Z","receivedAt":"2006-12-20T11:38:57Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> Brian Gernhardt <benji@silverinsanity.com> writes:\n> \n>> And is there an easier way to find these things than \"git rev-list\n>> HEAD | git diff-tree -r -s --stdin -SCOLLISION | xargs git show\"?  I\n>> cobbled that together from poking around inside gitk (which mostly\n>> works in OS X, but has some issues that make me prefer the command\n>> line).\n> \n> I typically do:\n> \n>       git log --full-diff -p -SCOLLISION\n> \n> The --full-diff option helps because it shows the diff for other\n> files (that do not have different number of substring COLLISION\n> in the pre and postimage) in the same commit as well.\n\nYet another undocumented option. Sigh...\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n\n"},{"id":"296819","messageId":"360A3F7A-0849-4BCE-8550-1F05BB9821C5@silverinsanity.com","threadId":"6081","inReplyTo":"emb77h$cf2$1@sea.gmane.org","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2006-12-20T11:47:45Z","receivedAt":"2006-12-20T11:47:45Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"\nOn Dec 20, 2006, at 6:38 AM, Jakub Narebski wrote:\n\n> Junio C Hamano wrote:\n>\n>> The --full-diff option helps because it shows the diff for other\n>> files (that do not have different number of substring COLLISION\n>> in the pre and postimage) in the same commit as well.\n>\n> Yet another undocumented option. Sigh...\n\nI'd send in a patch to fix that (little gnome work is what I do in  \nWikipedia, and seems to be what I do here), but the option seems to  \nbe in setup_revision.c:setup_revisions, which is used in several  \nplaces.  Is there a central place to put that in the documentation?   \nShould there be?\n\n"},{"id":"296691","messageId":"20061220115731.GA29786@coredump.intra.peff.net","threadId":"6081","inReplyTo":"360A3F7A-0849-4BCE-8550-1F05BB9821C5@silverinsanity.com","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2006-12-20T11:57:32Z","receivedAt":"2006-12-20T11:57:32Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Dec 20, 2006 at 06:47:45AM -0500, Brian Gernhardt wrote:\n\n> >>The --full-diff option helps because it shows the diff for other\n> >>files (that do not have different number of substring COLLISION\n> >>in the pre and postimage) in the same commit as well.\n> >\n> >Yet another undocumented option. Sigh...\n> \n> I'd send in a patch to fix that (little gnome work is what I do in  \n> Wikipedia, and seems to be what I do here), but the option seems to  \n> be in setup_revision.c:setup_revisions, which is used in several  \n> places.  Is there a central place to put that in the documentation?   \n> Should there be?\n\nPlease read the rest of the thread for some explanation from Junio on\nhow this option works.\n\nI think it makes sense to group the porcelain-ish options together for\ngit-log/git-whatchanged (and potentially git-show). Really, they can\ntake any of the diff-options or any of the rev-list options.  The\nrev-list options are not currently grouped for inclusion in another man\npage. The diff options are available in diff-options.txt, but are not\nincluded by the log manpages.  They probably should be.\n\n"},{"id":"30059","messageId":"3EB63EEE-0F78-47CE-B94E-325A9F6817C5@silverinsanity.com","threadId":"6081","inReplyTo":"20061220115731.GA29786@coredump.intra.peff.net","subject":"Re: Change in git-svn dcommit semantics?","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2006-12-22T14:09:01Z","receivedAt":"2006-12-22T14:09:01Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"On Dec 20, 2006, at 6:57 AM, Jeff King wrote:\n\n> On Wed, Dec 20, 2006 at 06:47:45AM -0500, Brian Gernhardt wrote:\n>\n>>>> The --full-diff option helps because it shows the diff for other\n>>>> files (that do not have different number of substring COLLISION\n>>>> in the pre and postimage) in the same commit as well.\n>>>\n>>> Yet another undocumented option. Sigh...\n>>\n>> I'd send in a patch to fix that (little gnome work is what I do in\n>> Wikipedia, and seems to be what I do here), but the option seems to\n>> be in setup_revision.c:setup_revisions, which is used in several\n>> places.  Is there a central place to put that in the documentation?\n>> Should there be?\n>\n> Please read the rest of the thread for some explanation from Junio on\n> how this option works.\n\nI was trying to write quick documentation for this option, placing it  \nin Documentation/diff-options.txt (is that the right place for it?),  \nwhen I ran across --pickaxe-all.  How do the two options differ?\n\n~~ Brian\n"}]}