{"thread":{"id":"17056","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","startedAt":"2009-01-08T18:22:55Z","lastAt":"2009-01-22T00:28:52Z","messageCount":10,"participants":["martin f krafft","Kirill Smelkov"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"299088","messageId":"1231438975-13624-1-git-send-email-kirr@landau.phys.spbu.ru","threadId":"17056","inReplyTo":null,"subject":"[PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2009-01-08T18:22:55Z","receivedAt":"2009-01-08T18:22:55Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"This implements `tg patch -i` and `tg patch -w` to see current patch as\ngenerated against not-yet-committed index and worktree.\n\n\nNOTE: unfortunately `git cat-file blob <file>` does not provide an option\nto cat file from worktree (only from an object or from index), so I had to\nunroll my own `cat file topic:file` with special support for '(i)' and\n'(w)' topics.\n\nSigned-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n\n---\n README                     |    5 +++--\n contrib/tg-completion.bash |    6 ++++++\n tg-patch.sh                |   31 +++++++++++++++++++++++++------\n tg.sh                      |   21 +++++++++++++++++++++\n 4 files changed, 55 insertions(+), 8 deletions(-)\n\ndiff --git a/README b/README\nindex 1d38365..5796112 100644\n--- a/README\n+++ b/README\n@@ -284,8 +284,9 @@ tg patch\n \ttg patch will be able to automatically send the patches by mail\n \tor save them to files. (TODO)\n \n-\tTODO: tg patch -i to base at index instead of branch,\n-\t\t-w for working tree\n+\tOptions:\n+\t  -i\t\tbase patch generation on index instead of branch\n+\t  -w\t\tbase patch generation on working tree instead of branch\n \n tg mail\n ~~~~~~~\ndiff --git a/contrib/tg-completion.bash b/contrib/tg-completion.bash\nindex 9641d04..de8a7b5 100755\n--- a/contrib/tg-completion.bash\n+++ b/contrib/tg-completion.bash\n@@ -359,6 +359,12 @@ _tg_patch ()\n \tlocal cur=\"${COMP_WORDS[COMP_CWORD]}\"\n \n \tcase \"$cur\" in\n+\t-*)\n+\t\t__tgcomp \"\n+\t\t\t-i\n+\t\t\t-w\n+\t\t\"\n+\t\t;;\n \t*)\n \t\t__tgcomp \"$(__tg_topics)\"\n \tesac\ndiff --git a/tg-patch.sh b/tg-patch.sh\nindex dc699d2..db1ad09 100644\n--- a/tg-patch.sh\n+++ b/tg-patch.sh\n@@ -5,14 +5,25 @@\n \n name=\n \n+topic=\n+diff_opts=\n+diff_committed_only=yes\t# will be unset for index/worktree\n+\n \n ## Parse options\n \n while [ -n \"$1\" ]; do\n \targ=\"$1\"; shift\n \tcase \"$arg\" in\n+\t-i)\n+\t\ttopic='(i)'\n+\t\tdiff_opts=\"$diff_opts --cached\";;\n+\t\tdiff_committed_only=;\n+\t-w)\n+\t\ttopic='(w)'\n+\t\tdiff_committed_only=;;\n \t-*)\n-\t\techo \"Usage: tg [...] patch [NAME]\" >&2\n+\t\techo \"Usage: tg [...] patch [-i | -w] [NAME]\" >&2\n \t\texit 1;;\n \t*)\n \t\t[ -z \"$name\" ] || die \"name already specified ($name)\"\n@@ -20,31 +31,39 @@ while [ -n \"$1\" ]; do\n \tesac\n done\n \n+\n+[ -n \"$name\"  -a  -z \"$diff_committed_only\" ]  &&\n+\tdie \"-i/-w are mutually exclusive with NAME\"\n+\n [ -n \"$name\" ] || name=\"$(git symbolic-ref HEAD | sed 's#^refs/\\(heads\\|top-bases\\)/##')\"\n base_rev=\"$(git rev-parse --short --verify \"refs/top-bases/$name\" 2>/dev/null)\" ||\n \tdie \"not a TopGit-controlled branch\"\n \n+# if not index/worktree, topic is current branch\n+[ -z \"$topic\" ] && topic=\"$name\"\n+\n+\n \n setup_pager\n \n-git cat-file blob \"$name:.topmsg\"\n+cat_file \"$topic:.topmsg\"\n echo\n-[ -n \"$(git grep '^[-]--' \"$name\" -- \".topmsg\")\" ] || echo '---'\n+[ -n \"$(git grep $diff_opts '^[-]--' ${diff_committed_only:+\"$name\"} -- \".topmsg\")\" ] || echo '---'\n \n # Evil obnoxious hack to work around the lack of git diff --exclude\n git_is_stupid=\"$(mktemp -t tg-patch-changes.XXXXXX)\"\n-git diff-tree --name-only \"$base_rev\" \"$name\" |\n+git diff --name-only $diff_opts \"$base_rev\" ${diff_committed_only:+\"$name\"} -- |\n \tfgrep -vx \".topdeps\" |\n \tfgrep -vx \".topmsg\" >\"$git_is_stupid\" || : # fgrep likes to fail randomly?\n if [ -s \"$git_is_stupid\" ]; then\n-\tcat \"$git_is_stupid\" | xargs git diff --patch-with-stat \"$base_rev\" \"$name\" --\n+\tcat \"$git_is_stupid\" | xargs git diff --patch-with-stat $diff_opts \"$base_rev\" ${diff_committed_only:+\"$name\"} --\n else\n \techo \"No changes.\"\n fi\n rm \"$git_is_stupid\"\n \n echo '-- '\n-echo \"tg: ($base_rev..) $name (depends on: $(git cat-file blob \"$name:.topdeps\" | paste -s -d' '))\"\n+echo \"tg: ($base_rev..) $name (depends on: $(cat_file \"$topic:.topdeps\" | paste -s -d' '))\"\n branch_contains \"$name\" \"$base_rev\" ||\n \techo \"tg: The patch is out-of-date wrt. the base! Run \\`$tg update\\`.\"\n \ndiff --git a/tg.sh b/tg.sh\nindex b64fc3a..ab0db52 100644\n--- a/tg.sh\n+++ b/tg.sh\n@@ -17,6 +17,27 @@ die()\n \texit 1\n }\n \n+# cat_file \"topic:file\"\n+# Like `git cat-file blob $1`, but topics (i) and (w) means index and worktree\n+cat_file()\n+{\n+\targ=\"$1\"\n+\tcase \"$arg\" in\n+\t'(w):'*)\n+\t\targ=$(echo \"$arg\" | tail --bytes=+5)\n+\t\tcat \"$arg\"\n+\t\treturn\n+\t\t;;\n+\t'(i):'*)\n+\t\t# ':file' means cat from index\n+\t\targ=$(echo \"$arg\" | tail --bytes=+5)\n+\t\tgit cat-file blob \":$arg\"\n+\t\t;;\n+\t*)\n+\t\tgit cat-file blob \"$arg\"\n+\tesac\n+}\n+\n # setup_hook NAME\n setup_hook()\n {\n-- \ntg: (a3a5be1..) t/tg-patch-worktree (depends on: t/tg-patch-setup-pager)\n"},{"id":"99736","messageId":"20090108195356.GA14644@lapse.rw.madduck.net","threadId":"17056","inReplyTo":"1231438975-13624-1-git-send-email-kirr@landau.phys.spbu.ru","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2009-01-08T19:53:56Z","receivedAt":"2009-01-08T19:53:56Z","isPatch":true,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.09.0722 +1300]:\n> This implements `tg patch -i` and `tg patch -w` to see current\n> patch as generated against not-yet-committed index and worktree.\n\nI think at this early stage, it would make sense to use long options\nand not reserve short options yet. Unless Petr disagrees, I'd kindly\nask you to use long options instead. Once TopGit has been around for\na while, we can provide short options for the most important long\noptions.\n\nThis is possibly too conservative, but I've been bitten by lack of\nnew letters before because I've used them all up for options that\nlater turned out not to be needed.\n\nI have not yet had the time to actually look at the patch.\n\n-- \nmartin | http://madduck.net/ | http://two.sentenc.es/\n \n\"when zarathustra was alone... he said to his heart: 'could it be\n possible! this old saint in the forest hath not yet heard of it, that\n god is dead!'\"\n                                                 - friedrich nietzsche\n \nspamtraps: madduck.bogus@madduck.net\n"},{"id":"99741","messageId":"20090108201614.GA4185@roro3","threadId":"17056","inReplyTo":"20090108195356.GA14644@lapse.rw.madduck.net","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2009-01-08T20:16:15Z","receivedAt":"2009-01-08T20:16:15Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Fri, Jan 09, 2009 at 08:53:56AM +1300, martin f krafft wrote:\n> also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.09.0722 +1300]:\n> > This implements `tg patch -i` and `tg patch -w` to see current\n> > patch as generated against not-yet-committed index and worktree.\n> \n> I think at this early stage, it would make sense to use long options\n> and not reserve short options yet. Unless Petr disagrees, I'd kindly\n> ask you to use long options instead. Once TopGit has been around for\n> a while, we can provide short options for the most important long\n> options.\n> \n> This is possibly too conservative, but I've been bitten by lack of\n> new letters before because I've used them all up for options that\n> later turned out not to be needed.\n\nI agree, but when I found myself needing something like\n`tg patch --index`, I've spot this in README:\n\n\n    --- a/README\n    +++ b/README\n    @@ -284,8 +284,9 @@ tg patch\n            tg patch will be able to automatically send the patches by mail\n            or save them to files. (TODO)\n    \n    -       TODO: tg patch -i to base at index instead of branch,\n    -               -w for working tree\n\nSo I concluded -i/-w was planned from the beginning.\n\n\nI myself would call these options --index and --work or something\nlike that, but I'll be ok with any option.\n\n\nThanks,\nKirill\n"},{"id":"99743","messageId":"20090108211149.GA19983@roro3","threadId":"17056","inReplyTo":"20090108201614.GA4185@roro3","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2009-01-08T21:11:49Z","receivedAt":"2009-01-08T21:11:49Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"I'm sorry, but I've found a mistake in my code for case:\n\ndiff --git a/tg-patch.sh b/tg-patch.sh\nindex db1ad09..d701c54 100644\n--- a/tg-patch.sh\n+++ b/tg-patch.sh\n@@ -17,8 +17,8 @@ while [ -n \"$1\" ]; do\n        case \"$arg\" in\n        -i)\n                topic='(i)'\n-               diff_opts=\"$diff_opts --cached\";;\n-               diff_committed_only=;\n+               diff_opts=\"$diff_opts --cached\";\n+               diff_committed_only=;;\n        -w)\n                topic='(w)'\n                diff_committed_only=;;\n\n\nSo here is corrected patch:\n\n\nFrom: Kirill Smelkov <kirr@landau.phys.spbu.ru>\nTo: Petr Baudis <pasky@suse.cz>\nCc: martin f krafft <madduck@madduck.net>\nCc: Git Mailing List <git@vger.kernel.org>\nSubject: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index\n\nThis implements `tg patch -i` and `tg patch -w` to see current patch as\ngenerated against not-yet-committed index and worktree.\n\n\nNOTE: unfortunately `git cat-file blob <file>` does not provide an option\nto cat file from worktree (only from an object or from index), so I had to\nunroll my own `cat file topic:file` with special support for '(i)' and\n'(w)' topics.\n\nSigned-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n\n---\n README                     |    5 +++--\n contrib/tg-completion.bash |    6 ++++++\n tg-patch.sh                |   31 +++++++++++++++++++++++++------\n tg.sh                      |   21 +++++++++++++++++++++\n 4 files changed, 55 insertions(+), 8 deletions(-)\n\ndiff --git a/README b/README\nindex 1d38365..5796112 100644\n--- a/README\n+++ b/README\n@@ -284,8 +284,9 @@ tg patch\n \ttg patch will be able to automatically send the patches by mail\n \tor save them to files. (TODO)\n \n-\tTODO: tg patch -i to base at index instead of branch,\n-\t\t-w for working tree\n+\tOptions:\n+\t  -i\t\tbase patch generation on index instead of branch\n+\t  -w\t\tbase patch generation on working tree instead of branch\n \n tg mail\n ~~~~~~~\ndiff --git a/contrib/tg-completion.bash b/contrib/tg-completion.bash\nindex 9641d04..de8a7b5 100755\n--- a/contrib/tg-completion.bash\n+++ b/contrib/tg-completion.bash\n@@ -359,6 +359,12 @@ _tg_patch ()\n \tlocal cur=\"${COMP_WORDS[COMP_CWORD]}\"\n \n \tcase \"$cur\" in\n+\t-*)\n+\t\t__tgcomp \"\n+\t\t\t-i\n+\t\t\t-w\n+\t\t\"\n+\t\t;;\n \t*)\n \t\t__tgcomp \"$(__tg_topics)\"\n \tesac\ndiff --git a/tg-patch.sh b/tg-patch.sh\nindex dc699d2..d701c54 100644\n--- a/tg-patch.sh\n+++ b/tg-patch.sh\n@@ -5,14 +5,25 @@\n \n name=\n \n+topic=\n+diff_opts=\n+diff_committed_only=yes\t# will be unset for index/worktree\n+\n \n ## Parse options\n \n while [ -n \"$1\" ]; do\n \targ=\"$1\"; shift\n \tcase \"$arg\" in\n+\t-i)\n+\t\ttopic='(i)'\n+\t\tdiff_opts=\"$diff_opts --cached\";\n+\t\tdiff_committed_only=;;\n+\t-w)\n+\t\ttopic='(w)'\n+\t\tdiff_committed_only=;;\n \t-*)\n-\t\techo \"Usage: tg [...] patch [NAME]\" >&2\n+\t\techo \"Usage: tg [...] patch [-i | -w] [NAME]\" >&2\n \t\texit 1;;\n \t*)\n \t\t[ -z \"$name\" ] || die \"name already specified ($name)\"\n@@ -20,31 +31,39 @@ while [ -n \"$1\" ]; do\n \tesac\n done\n \n+\n+[ -n \"$name\"  -a  -z \"$diff_committed_only\" ]  &&\n+\tdie \"-i/-w are mutually exclusive with NAME\"\n+\n [ -n \"$name\" ] || name=\"$(git symbolic-ref HEAD | sed 's#^refs/\\(heads\\|top-bases\\)/##')\"\n base_rev=\"$(git rev-parse --short --verify \"refs/top-bases/$name\" 2>/dev/null)\" ||\n \tdie \"not a TopGit-controlled branch\"\n \n+# if not index/worktree, topic is current branch\n+[ -z \"$topic\" ] && topic=\"$name\"\n+\n+\n \n setup_pager\n \n-git cat-file blob \"$name:.topmsg\"\n+cat_file \"$topic:.topmsg\"\n echo\n-[ -n \"$(git grep '^[-]--' \"$name\" -- \".topmsg\")\" ] || echo '---'\n+[ -n \"$(git grep $diff_opts '^[-]--' ${diff_committed_only:+\"$name\"} -- \".topmsg\")\" ] || echo '---'\n \n # Evil obnoxious hack to work around the lack of git diff --exclude\n git_is_stupid=\"$(mktemp -t tg-patch-changes.XXXXXX)\"\n-git diff-tree --name-only \"$base_rev\" \"$name\" |\n+git diff --name-only $diff_opts \"$base_rev\" ${diff_committed_only:+\"$name\"} -- |\n \tfgrep -vx \".topdeps\" |\n \tfgrep -vx \".topmsg\" >\"$git_is_stupid\" || : # fgrep likes to fail randomly?\n if [ -s \"$git_is_stupid\" ]; then\n-\tcat \"$git_is_stupid\" | xargs git diff --patch-with-stat \"$base_rev\" \"$name\" --\n+\tcat \"$git_is_stupid\" | xargs git diff --patch-with-stat $diff_opts \"$base_rev\" ${diff_committed_only:+\"$name\"} --\n else\n \techo \"No changes.\"\n fi\n rm \"$git_is_stupid\"\n \n echo '-- '\n-echo \"tg: ($base_rev..) $name (depends on: $(git cat-file blob \"$name:.topdeps\" | paste -s -d' '))\"\n+echo \"tg: ($base_rev..) $name (depends on: $(cat_file \"$topic:.topdeps\" | paste -s -d' '))\"\n branch_contains \"$name\" \"$base_rev\" ||\n \techo \"tg: The patch is out-of-date wrt. the base! Run \\`$tg update\\`.\"\n \ndiff --git a/tg.sh b/tg.sh\nindex b64fc3a..1762f03 100644\n--- a/tg.sh\n+++ b/tg.sh\n@@ -17,6 +17,27 @@ die()\n \texit 1\n }\n \n+# cat_file \"topic:file\"\n+# Like `git cat-file blob $1`, but topics '(i)' and '(w)' means index and worktree\n+cat_file()\n+{\n+\targ=\"$1\"\n+\tcase \"$arg\" in\n+\t'(w):'*)\n+\t\targ=$(echo \"$arg\" | tail --bytes=+5)\n+\t\tcat \"$arg\"\n+\t\treturn\n+\t\t;;\n+\t'(i):'*)\n+\t\t# ':file' means cat from index\n+\t\targ=$(echo \"$arg\" | tail --bytes=+5)\n+\t\tgit cat-file blob \":$arg\"\n+\t\t;;\n+\t*)\n+\t\tgit cat-file blob \"$arg\"\n+\tesac\n+}\n+\n # setup_hook NAME\n setup_hook()\n {\n-- \ntg: (a3a5be1..) t/tg-patch-worktree (depends on: t/tg-patch-setup-pager)\n"},{"id":"100986","messageId":"20090118150637.GC27522@roro3.zxlink","threadId":"17056","inReplyTo":"20090108211149.GA19983@roro3","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2009-01-18T15:06:37Z","receivedAt":"2009-01-18T15:06:37Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Fri, Jan 09, 2009 at 12:11:49AM +0300, Kirill Smelkov wrote:\n> I'm sorry, but I've found a mistake in my code for case:\n> \n> diff --git a/tg-patch.sh b/tg-patch.sh\n> index db1ad09..d701c54 100644\n> --- a/tg-patch.sh\n> +++ b/tg-patch.sh\n> @@ -17,8 +17,8 @@ while [ -n \"$1\" ]; do\n>         case \"$arg\" in\n>         -i)\n>                 topic='(i)'\n> -               diff_opts=\"$diff_opts --cached\";;\n> -               diff_committed_only=;\n> +               diff_opts=\"$diff_opts --cached\";\n> +               diff_committed_only=;;\n>         -w)\n>                 topic='(w)'\n>                 diff_committed_only=;;\n> \n> \n> So here is corrected patch:\n> \n> \n> From: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n> To: Petr Baudis <pasky@suse.cz>\n> Cc: martin f krafft <madduck@madduck.net>\n> Cc: Git Mailing List <git@vger.kernel.org>\n> Subject: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index\n> \n> This implements `tg patch -i` and `tg patch -w` to see current patch as\n> generated against not-yet-committed index and worktree.\n> \n> \n> NOTE: unfortunately `git cat-file blob <file>` does not provide an option\n> to cat file from worktree (only from an object or from index), so I had to\n> unroll my own `cat file topic:file` with special support for '(i)' and\n> '(w)' topics.\n> \n> Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>\n\n[...]\n\nPetr, Martin,\n\nWhat's the state of this patch?\n\nI don't understand why this gets ignored. Maybe I do something wrong?\n...\n\n\nThanks,\nKirill\n"},{"id":"101194","messageId":"20090120002103.GA12549@lapse.rw.madduck.net","threadId":"17056","inReplyTo":"20090118150637.GC27522@roro3.zxlink","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2009-01-20T00:21:03Z","receivedAt":"2009-01-20T00:21:03Z","isPatch":true,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.19.0206 +1100]:\n> I don't understand why this gets ignored. Maybe I do something wrong?\n\nI am not ignoring it, I am just currently flooded and travelling.\nI don't see any obvious problems with your patch, but I do not have\nthe time to test it right now. I will do my best to do another\nrelease when I return from Tasmania, hopefully on the plane trip\nhome. Maybe Petr can get around to it before I do.\n\nCheers, and sorry,\n\n-- \nmartin | http://madduck.net/ | http://two.sentenc.es/\n \nif you find a spelling mistake in the above, you get to keep it.\n \nspamtraps: madduck.bogus@madduck.net\n"},{"id":"101280","messageId":"20090120175635.GA5721@roro3.zxlink","threadId":"17056","inReplyTo":"20090120002103.GA12549@lapse.rw.madduck.net","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2009-01-20T17:56:35Z","receivedAt":"2009-01-20T17:56:35Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Tue, Jan 20, 2009 at 11:21:03AM +1100, martin f krafft wrote:\n> also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.19.0206 +1100]:\n> > I don't understand why this gets ignored. Maybe I do something wrong?\n> \n> I am not ignoring it, I am just currently flooded and travelling.\n> I don't see any obvious problems with your patch, but I do not have\n> the time to test it right now. I will do my best to do another\n> release when I return from Tasmania, hopefully on the plane trip\n> home. Maybe Petr can get around to it before I do.\n> \n> Cheers, and sorry,\n\nNo problem and take your time.\n\nIt was just me having no idea about what's going on.\n\n\nHappy travelling,\nKirill\n"},{"id":"101341","messageId":"20090121032052.GB7422@lapse.rw.madduck.net","threadId":"17056","inReplyTo":"20090120175635.GA5721@roro3.zxlink","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2009-01-21T03:20:52Z","receivedAt":"2009-01-21T03:20:52Z","isPatch":true,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.21.0456 +1100]:\n> No problem and take your time.\n> \n> It was just me having no idea about what's going on.\n\nI am a little confused about the patches, and git-am does not seem\nto be able to apply two patches from the same email. I use Maildir,\nso I am passing the single message with multiple patches to git-am,\nand it applies all changes into one single commit.\n\nAnyway, do you have a repo which I can cherry-pick from?\n\n-- \nmartin | http://madduck.net/ | http://two.sentenc.es/\n \n\"out of the crooked timber of humanity,\n no straight thing was ever made.\"\n                                                       -- imanuel kant\n \nspamtraps: madduck.bogus@madduck.net\n"},{"id":"101436","messageId":"20090121202613.GA5400@roro3.zxlink","threadId":"17056","inReplyTo":"20090121032052.GB7422@lapse.rw.madduck.net","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"Kirill Smelkov","fromEmail":"kirr@landau.phys.spbu.ru","sentAt":"2009-01-21T20:26:13Z","receivedAt":"2009-01-21T20:26:13Z","isPatch":true,"sender":{"key":"kirr@navytux.spb.ru","avatar":"https://gravatar.com/avatar/cf3445fdad1849941e17ab25bf1ee7c5ea1be2deb444be25ff5f36b0e50a985f?d=mp&s=160"},"body":"On Wed, Jan 21, 2009 at 02:20:52PM +1100, martin f krafft wrote:\n> also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.21.0456 +1100]:\n> > No problem and take your time.\n> > \n> > It was just me having no idea about what's going on.\n> \n> I am a little confused about the patches, and git-am does not seem\n> to be able to apply two patches from the same email. I use Maildir,\n> so I am passing the single message with multiple patches to git-am,\n> and it applies all changes into one single commit.\n\nI see.\n\nIt seems I need to study how to prepare patches with patchy comments, or\nget my hands dirty with `git am` :)\n\n> Anyway, do you have a repo which I can cherry-pick from?\n\nSure\n\n    git://repo.or.cz/topgit/kirr.git  for-upstream\n\n\nThanks,\nKirill\n"},{"id":"101486","messageId":"20090122002852.GE29151@lapse.rw.madduck.net","threadId":"17056","inReplyTo":"20090121202613.GA5400@roro3.zxlink","subject":"Re: [PATCH (topgit)] tg-patch: add support for generating patches against worktree and index","fromName":"martin f krafft","fromEmail":"madduck@madduck.net","sentAt":"2009-01-22T00:28:52Z","receivedAt":"2009-01-22T00:28:52Z","isPatch":true,"sender":{"key":"madduck@madduck.net","avatar":null},"body":"also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2009.01.22.0726 +1100]:\n> It seems I need to study how to prepare patches with patchy\n> comments, or get my hands dirty with `git am` :)\n\nI believe git-send-email --editor can be used to create a lead-in\nmail to describe what follows, and send patches in separate messages\nin reply to that lead-in.\n\n-- \nmartin | http://madduck.net/ | http://two.sentenc.es/\n \n\"welcome to american airlines, sir. here's your avocado - remember to\n keep it turned on and with you at all times. please turn your luggage\n over to the armadillos for rootling.\"\n                      -- http://azure.humbug.org.au/~aj/armadillos.txt\n \nspamtraps: madduck.bogus@madduck.net\n"}]}