{"thread":{"id":"347","subject":"I'm missing isofs.h","startedAt":"2005-04-27T04:43:38Z","lastAt":"2005-04-28T23:39:04Z","messageCount":23,"participants":["Andrew Morton","Jan Harkes","Petr Baudis","Steven Cole","Linus Torvalds","David A. Wheeler","Dan Holmsand","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"1846","messageId":"20050426214338.32e9ac27.akpm@osdl.org","threadId":"347","inReplyTo":null,"subject":"I'm missing isofs.h","fromName":"Andrew Morton","fromEmail":"akpm@osdl.org","sentAt":"2005-04-27T04:43:38Z","receivedAt":"2005-04-27T04:43:38Z","isPatch":false,"sender":{"key":"akpm@osdl.org","avatar":null},"body":"\nIn a current tree, using git-pasky-0.7:\n\nbix:/usr/src/git26> cat .git/tags/v2.6.12-rc3 \na2755a80f40e5794ddc20e00f781af9d6320fafb\nbix:/usr/src/git26> git diff -r v2.6.12-rc3|grep isofs.h\n+#include \"isofs.h\"\n #include \"zisofs.h\"\n+#include \"isofs.h\"\n+#include \"isofs.h\"\n+#include \"isofs.h\"\n #include \"zisofs.h\"\n+#include \"isofs.h\"\n+#include \"isofs.h\"\n+#include \"isofs.h\"\n+#include \"isofs.h\"\n\n\nThat diff should have included the addition of the new isofs.h, but it\nisn't there.\n\n"},{"id":"1858","messageId":"20050427125843.GA9454@delft.aura.cs.cmu.edu","threadId":"347","inReplyTo":"20050426214338.32e9ac27.akpm@osdl.org","subject":"Re: I'm missing isofs.h","fromName":"Jan Harkes","fromEmail":"jaharkes@cs.cmu.edu","sentAt":"2005-04-27T12:58:44Z","receivedAt":"2005-04-27T12:58:44Z","isPatch":false,"sender":{"key":"jaharkes@cs.cmu.edu","avatar":"https://gravatar.com/avatar/cf95aecd150ca8ef33d6edc337ac4bb9e13aa4246fc3679257d578c7fddc1633?d=mp&s=160"},"body":"On Tue, Apr 26, 2005 at 09:43:38PM -0700, Andrew Morton wrote:\n> In a current tree, using git-pasky-0.7:\n\nIt looks like git-pasky-0.7 doesn't include the following commit, but\nthere are also several other diff and merge related fixes that were\nadded since then.\n\nJan\n\n\ncommit 65bc81d6fef619d7aadc5c7116be52860539f17a\ntree 9adb399af84228740555d732732983b7a02b019d\nparent 93256315b2444601a35484f4fb76cd5723284201\nauthor Petr Baudis <pasky@ucw.cz> Sat, 23 Apr 2005 18:05:07 -0700\ncommitter Linus Torvalds <torvalds@ppc970.osdl.org> Sat, 23 Apr 2005 18:05:07 -0700 \n\n    [PATCH] Fix broken diff-cache output on added files\n\n    Added files were errorneously reported with the - prefix by diff-cache,\n    obviously leading to great confusion.\n\n    Signed-off-by: Petr Baudis <pasky@ucw.cz>\n    Signed-off-by: Linus Torvalds <torvalds@osdl.org>\n\n\n"},{"id":"1861","messageId":"20050427135840.GE3014@pasky.ji.cz","threadId":"347","inReplyTo":"20050427125843.GA9454@delft.aura.cs.cmu.edu","subject":"Re: I'm missing isofs.h","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-04-27T13:58:41Z","receivedAt":"2005-04-27T13:58:41Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Wed, Apr 27, 2005 at 02:58:44PM CEST, I got a letter\nwhere Jan Harkes <jaharkes@cs.cmu.edu> told me that...\n> On Tue, Apr 26, 2005 at 09:43:38PM -0700, Andrew Morton wrote:\n> > In a current tree, using git-pasky-0.7:\n> \n> It looks like git-pasky-0.7 doesn't include the following commit, but\n> there are also several other diff and merge related fixes that were\n> added since then.\n\nWhy do you think it doesn't include it? I can see the fix in the code.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"1867","messageId":"426FB03B.9090509@mesatop.com","threadId":"347","inReplyTo":"20050426214338.32e9ac27.akpm@osdl.org","subject":"Re: I'm missing isofs.h","fromName":"Steven Cole","fromEmail":"elenstev@mesatop.com","sentAt":"2005-04-27T15:31:07Z","receivedAt":"2005-04-27T15:31:07Z","isPatch":false,"sender":{"key":"elenstev@mesatop.com","avatar":null},"body":"Andrew Morton wrote:\n> In a current tree, using git-pasky-0.7:\n> \n> bix:/usr/src/git26> cat .git/tags/v2.6.12-rc3 \n> a2755a80f40e5794ddc20e00f781af9d6320fafb\n> bix:/usr/src/git26> git diff -r v2.6.12-rc3|grep isofs.h\n> +#include \"isofs.h\"\n>  #include \"zisofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n>  #include \"zisofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> \n> \n> That diff should have included the addition of the new isofs.h, but it\n> isn't there.\n> \n\nI'm seeing unexplained behaviour using the above technique, and I'm\nalso seeing fs/isofs/isofs.h as missing, along with seven other changes.\n\nI'm using the latest cogito release:\n[steven@spc0 COGITO]$ cg-version\ncogito-0.8 (3e0fb979cc7541506ec660ab66b83d8120da6d57)\n\nI updated my linux-2.6 repo with cg-update origin, and then created\na current linux-2.6 tree using cg-export.  I diffed that exported\ntree with 2.6.12-rc3 and saved the result as \"a.diff\".\n\nI created another diff using Andrew's technique using cg-diff and saved\nthat to \"b.diff\".\n\nI had expected that a.diff and b.diff to be the same, but they are\nnot, and the AWOL file fs/isofs/isofs.h is among the missing using\nAndrew's technique.\n\nHere are the details.\n\nSteven\n\n[steven@spc0 linux-2.6]$ cat .git/HEAD\ne8108c98dd6d65613fa0ec9d2300f89c48d554bf\n\n[steven@spc0 linux-2.6]$ fsck-cache --tags\ntagged commit a2755a80f40e5794ddc20e00f781af9d6320fafb (v2.6.12-rc3) in 0397236d43e48e821cce5bbe6a80a1a56bb7cc3a\ntagged commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (v2.6.12-rc2) in 9e734775f7c22d2f89943ad6c745571f1930105f\nexpect dangling commits - potential heads - due to lack of head information\ndangling commit e8108c98dd6d65613fa0ec9d2300f89c48d554bf\n\n[steven@spc0 linux-2.6]$ cg-export ../linux-2.6-current\n[steven@spc0 linux-2.6]$ cg-diff -r v2.6.12-rc3 >../b.diff\n[steven@spc0 linux-2.6]$ cd ..\n\n[steven@spc0 COGITO]$ diff -urN linux-2.6.12-rc3 linux-2.6-current >a.diff\n#note that linux-2.6.12-rc3 was created by patch from kernel.org.\n\n[steven@spc0 COGITO]$ diffstat a.diff >a.diffstat\n[steven@spc0 COGITO]$ diffstat b.diff >b.diffstat\n[steven@spc0 COGITO]$ tail -n 1 a.diffstat\n  199 files changed, 3083 insertions(+), 1601 deletions(-)\n[steven@spc0 COGITO]$ tail -n 1 b.diffstat\n  191 files changed, 2539 insertions(+), 1540 deletions(-)\n[steven@spc0 COGITO]$ diff -u a.diffstat b.diffstat\n--- a.diffstat  2005-04-27 09:07:04.000000000 -0600\n+++ b.diffstat  2005-04-27 09:07:14.000000000 -0600\n@@ -101,7 +101,6 @@\n   drivers/usb/net/zd1201.c                     |   20\n   drivers/usb/serial/Kconfig                   |    9\n   drivers/usb/serial/Makefile                  |    1\n- drivers/usb/serial/hp4x.c                    |   85 +++\n   drivers/usb/storage/unusual_devs.h           |   22 -\n   drivers/video/imsttfb.c                      |    4\n   drivers/video/logo/Kconfig                   |    2\n@@ -113,7 +112,6 @@\n   fs/isofs/dir.c                               |   13\n   fs/isofs/export.c                            |    6\n   fs/isofs/inode.c                             |   19\n- fs/isofs/isofs.h                             |  190 ++++++++\n   fs/isofs/joliet.c                            |    6\n   fs/isofs/namei.c                             |   13\n   fs/isofs/rock.c                              |    8\n@@ -136,15 +134,10 @@\n   include/asm-sparc64/pgtable.h                |    5\n   include/asm-sparc64/spinlock.h               |   48 +-\n   include/linux/iso_fs.h                       |  147 ------\n- include/linux/iso_fs_i.h                     |   27 -\n- include/linux/iso_fs_sb.h                    |   34 -\n   include/linux/netfilter_ipv4.h               |    3\n   include/linux/pci_ids.h                      |    1\n- include/linux/tc_act/tc_defact.h             |   21\n- include/net/act_generic.h                    |  142 ++++++\n   include/net/ax25.h                           |   10\n   include/net/ipv6.h                           |    2\n- include/net/tc_act/tc_defact.h               |   13\n   include/net/tcp.h                            |   11\n   kernel/panic.c                               |    4\n   mm/mempolicy.c                               |    2\n@@ -190,11 +183,10 @@\n   net/sched/Kconfig                            |   10\n   net/sched/Makefile                           |   11\n   net/sched/cls_fw.c                           |   31 +\n- net/sched/simple.c                           |   93 ++++\n   net/unix/af_unix.c                           |    1\n   net/xfrm/xfrm_state.c                        |    5\n   scripts/mod/file2alias.c                     |  111 ++++-\n   security/selinux/hooks.c                     |    3\n   sound/oss/msnd_pinnacle.c                    |    2\n   sound/ppc/Kconfig                            |    2\n- 199 files changed, 3083 insertions(+), 1601 deletions(-)\n+ 191 files changed, 2539 insertions(+), 1540 deletions(-)\n[steven@spc0 COGITO]$ cg-version\ncogito-0.8 (3e0fb979cc7541506ec660ab66b83d8120da6d57)\n\n"},{"id":"1873","messageId":"20050427164351.GA7070@delft.aura.cs.cmu.edu","threadId":"347","inReplyTo":"20050427135840.GE3014@pasky.ji.cz","subject":"Re: I'm missing isofs.h","fromName":"Jan Harkes","fromEmail":"jaharkes@cs.cmu.edu","sentAt":"2005-04-27T16:43:51Z","receivedAt":"2005-04-27T16:43:51Z","isPatch":false,"sender":{"key":"jaharkes@cs.cmu.edu","avatar":"https://gravatar.com/avatar/cf95aecd150ca8ef33d6edc337ac4bb9e13aa4246fc3679257d578c7fddc1633?d=mp&s=160"},"body":"On Wed, Apr 27, 2005 at 03:58:41PM +0200, Petr Baudis wrote:\n> Dear diary, on Wed, Apr 27, 2005 at 02:58:44PM CEST, I got a letter\n> where Jan Harkes <jaharkes@cs.cmu.edu> told me that...\n> > On Tue, Apr 26, 2005 at 09:43:38PM -0700, Andrew Morton wrote:\n> > > In a current tree, using git-pasky-0.7:\n> > \n> > It looks like git-pasky-0.7 doesn't include the following commit, but\n> > there are also several other diff and merge related fixes that were\n> > added since then.\n> \n> Why do you think it doesn't include it? I can see the fix in the code.\n\nI looked through the output of cg-log, which I thought had at least some\nordering, and that commit showed up as more recent than the pasky-0.7\nentry. It looks like the same change is also part of pasky-0.7, but with\na different commit-id. Sorry about the confusion.\n\nIn any case, when I use\n    cg-diff -r a2755a80f40e5794ddc20e00f781af9d6320fafb: | grep isofs.h\n\nthe missing file does show up,\n    ...\n    Index: fs/isofs/isofs.h\n    +++ fd1621a8c03331bd78abfe52c8c385977d0a9729/fs/isofs/isofs.h (mode:100644 sha1:9ce7b51fb6141ea6b82d85687d490c74755591fb)\n    ...\n\nso either I'm missing some subtle command line error (missing ':' after\nthe tag-id?) or the problem was fixed by some other change. So I looked\nthrough the logs to see if there was anything obvious and the commit I\nmentioned looked promising.\n\nJan\n\n"},{"id":"1874","messageId":"20050427164555.GB7070@delft.aura.cs.cmu.edu","threadId":"347","inReplyTo":"20050427164351.GA7070@delft.aura.cs.cmu.edu","subject":"Re: I'm missing isofs.h","fromName":"Jan Harkes","fromEmail":"jaharkes@cs.cmu.edu","sentAt":"2005-04-27T16:45:55Z","receivedAt":"2005-04-27T16:45:55Z","isPatch":false,"sender":{"key":"jaharkes@cs.cmu.edu","avatar":"https://gravatar.com/avatar/cf95aecd150ca8ef33d6edc337ac4bb9e13aa4246fc3679257d578c7fddc1633?d=mp&s=160"},"body":"On Wed, Apr 27, 2005 at 12:43:51PM -0400, Jan Harkes wrote:\n> In any case, when I use\n>     cg-diff -r a2755a80f40e5794ddc20e00f781af9d6320fafb: | grep isofs.h\n> \n> the missing file does show up,\n>     ...\n>     Index: fs/isofs/isofs.h\n>     +++ fd1621a8c03331bd78abfe52c8c385977d0a9729/fs/isofs/isofs.h (mode:100644 sha1:9ce7b51fb6141ea6b82d85687d490c74755591fb)\n>     ...\n> \n> so either I'm missing some subtle command line error (missing ':' after\n> the tag-id?)\n\nLooks like that actually is the problem, when I run cg-diff -r, but\nleave out the ':' the final output does not include the added isofs.h\nfile.\n\nJan\n"},{"id":"1880","messageId":"426FCEA2.5000708@mesatop.com","threadId":"347","inReplyTo":"426FB03B.9090509@mesatop.com","subject":"Re: I'm missing isofs.h","fromName":"Steven Cole","fromEmail":"elenstev@mesatop.com","sentAt":"2005-04-27T17:40:50Z","receivedAt":"2005-04-27T17:40:50Z","isPatch":false,"sender":{"key":"elenstev@mesatop.com","avatar":null},"body":"Steven Cole wrote:\n> Andrew Morton wrote:\n> \n>> In a current tree, using git-pasky-0.7:\n>>\n>> bix:/usr/src/git26> cat .git/tags/v2.6.12-rc3 \n>> a2755a80f40e5794ddc20e00f781af9d6320fafb\n>> bix:/usr/src/git26> git diff -r v2.6.12-rc3|grep isofs.h\n>> +#include \"isofs.h\"\n>>  #include \"zisofs.h\"\n>> +#include \"isofs.h\"\n>> +#include \"isofs.h\"\n>> +#include \"isofs.h\"\n>>  #include \"zisofs.h\"\n>> +#include \"isofs.h\"\n>> +#include \"isofs.h\"\n>> +#include \"isofs.h\"\n>> +#include \"isofs.h\"\n>>\n>>\n>> That diff should have included the addition of the new isofs.h, but it\n>> isn't there.\n>>\n> \n> I'm seeing unexplained behaviour using the above technique, and I'm\n> also seeing fs/isofs/isofs.h as missing, along with seven other changes.\n> \n\nJan Harkes has found the problem to be a missing ':' at the end of the tag.\n\nSteven\n"},{"id":"1938","messageId":"20050427235115.GN22956@pasky.ji.cz","threadId":"347","inReplyTo":"20050426214338.32e9ac27.akpm@osdl.org","subject":"Re: I'm missing isofs.h","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-04-27T23:51:16Z","receivedAt":"2005-04-27T23:51:16Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Wed, Apr 27, 2005 at 06:43:38AM CEST, I got a letter\nwhere Andrew Morton <akpm@osdl.org> told me that...\n> In a current tree, using git-pasky-0.7:\n> \n> bix:/usr/src/git26> cat .git/tags/v2.6.12-rc3 \n> a2755a80f40e5794ddc20e00f781af9d6320fafb\n> bix:/usr/src/git26> git diff -r v2.6.12-rc3|grep isofs.h\n> +#include \"isofs.h\"\n>  #include \"zisofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n>  #include \"zisofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> +#include \"isofs.h\"\n> \n> \n> That diff should have included the addition of the new isofs.h, but it\n> isn't there.\n\nOuch.\n\nWell, using -r v2.6.12-rc3: is a workable workaround, but this is a\nproblem. With the trailing :, you are diffing against your latest\ncommit, whilst without the trailing :, you are diffing against your\nworking tree. ;-)\n\nThe problem is in how the latter is implemented:\n\n        export GIT_INDEX_FILE=$(mktemp -t gitdiff.XXXXXX)\n        cp .git/index $GIT_INDEX_FILE\n        read-tree -m $(tree-id \"$id1\")\n        update-cache --refresh\n        tree=$(tree-id \"$id1\")\n\tdiff-cache -r -z $tree | xargs -0 cg-Xdiffdo ...\n\nSo, we are recording our adds to the index cache, but here we use a\ndifferent one with the adds are not recorded - so diff-cache won't catch\nthem.\n\nSo I fixed this by doing diff-cache --cached and updating the tmp index\nby the +- entries. Pushed out, thanks.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"1944","messageId":"Pine.LNX.4.58.0504271708550.18901@ppc970.osdl.org","threadId":"347","inReplyTo":"20050427235115.GN22956@pasky.ji.cz","subject":"Re: I'm missing isofs.h","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-04-28T00:19:07Z","receivedAt":"2005-04-28T00:19:07Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Thu, 28 Apr 2005, Petr Baudis wrote:\n> \n> without the trailing :, you are diffing against your\n> working tree. ;-)\n> \n> The problem is in how the latter is implemented:\n> \n>         export GIT_INDEX_FILE=$(mktemp -t gitdiff.XXXXXX)\n>         cp .git/index $GIT_INDEX_FILE\n>         read-tree -m $(tree-id \"$id1\")\n>         update-cache --refresh\n>         tree=$(tree-id \"$id1\")\n> \tdiff-cache -r -z $tree | xargs -0 cg-Xdiffdo ...\n> \n> So, we are recording our adds to the index cache, but here we use a\n> different one with the adds are not recorded - so diff-cache won't catch\n> them.\n\nUmm. \n\nWhy do you create the new index file in the first place?\n\nIf you're diffing against the current working tree, you should just use \nyour current index file, no?\n\nAnd to get the difference between an old tree and the current working \ntree, you should just need to do\n\n\tdiff-cache -r -z $tree\n\nand you're done.\n\nIn other words, that temporary index file really isn't needed in the \n\"diff-cache\" world. It can diff the current index against _any_ old tree.\n\nAnd together with Junio's stuff from today, you can literally just do\n\n\tdiff-cache -p $tree\n\nand you're done - it diffs any release \"$tree\" against the current state.\n\nAnd if you want to diff against the current head (rather than current\nworking state), a simple\n\n\tdiff-tree -p $tree $(cat .git/HEAD)\n\nshould do it.\n\n\t\t\tLinus\n"},{"id":"1946","messageId":"42702F20.3050200@dwheeler.com","threadId":"347","inReplyTo":"20050427235115.GN22956@pasky.ji.cz","subject":"Cogito nit: cg-update should default to \"origin\".","fromName":"David A. Wheeler","fromEmail":"dwheeler@dwheeler.com","sentAt":"2005-04-28T00:32:32Z","receivedAt":"2005-04-28T00:32:32Z","isPatch":false,"sender":{"key":"dwheeler@dwheeler.com","avatar":"https://avatars.githubusercontent.com/u/813150?v=4"},"body":"Minor nit on Cogito: I think cg-update should default to \"origin\",\nnot the head, if you leave it unspecified.  Instead, add an\noption flag to specify the HEAD.  The origin seems (to me)\nto be a MUCH more common situation (and thus the better default).\n\n--- David A. Wheeler\n"},{"id":"1947","messageId":"20050428003246.GV22956@pasky.ji.cz","threadId":"347","inReplyTo":"Pine.LNX.4.58.0504271708550.18901@ppc970.osdl.org","subject":"Re: I'm missing isofs.h","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-04-28T00:32:47Z","receivedAt":"2005-04-28T00:32:47Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Thu, Apr 28, 2005 at 02:19:07AM CEST, I got a letter\nwhere Linus Torvalds <torvalds@osdl.org> told me that...\n> And to get the difference between an old tree and the current working \n> tree, you should just need to do\n> \n> \tdiff-cache -r -z $tree\n> \n> and you're done.\n> \n> In other words, that temporary index file really isn't needed in the \n> \"diff-cache\" world. It can diff the current index against _any_ old tree.\n\nOops, you are of course right. This was a stupid leftover from the\npre-diff-cache days, and since then I never looked at this code from\nsufficient distance to see it. ;-)\n\n> And together with Junio's stuff from today, you can literally just do\n> \n> \tdiff-cache -p $tree\n> \n> and you're done - it diffs any release \"$tree\" against the current state.\n\nActually, I can't; the patch generator is not on par with mine yet.\nIt does not show modes and does not indicate file adds/removals by\n/dev/null - basically, I need something cg-patch can eat (and it should\nbe backwards compatible). I think throwing the sha1 hashes away will not\nharm; I got used to the Index: field and === marker, but I don't care if\nI loose it.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"1955","messageId":"20050428005337.GA3422@pasky.ji.cz","threadId":"347","inReplyTo":"42702F20.3050200@dwheeler.com","subject":"Re: Cogito nit: cg-update should default to \"origin\".","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-04-28T00:53:38Z","receivedAt":"2005-04-28T00:53:38Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Thu, Apr 28, 2005 at 02:32:32AM CEST, I got a letter\nwhere \"David A. Wheeler\" <dwheeler@dwheeler.com> told me that...\n> Minor nit on Cogito: I think cg-update should default to \"origin\",\n> not the head, if you leave it unspecified.  Instead, add an\n> option flag to specify the HEAD.  The origin seems (to me)\n> to be a MUCH more common situation (and thus the better default).\n\nActually, I wasn't too happy with the current update-to-HEAD special\ncase. Sure, it's similar to SVN, but SVN's concepts are totally\ndifferent here, and this special case wart (which does really do\nsomething entirely different than normal cg-update) is one of the\nCogito-related shadows in my mind. What about moving this special case\nto something like\n\n\tcg-restore\n\nand changing the defaulting of update and pull back to 'origin'? I think\npeople do this cg-update without arguments so seldom that changing this\nnow shouldn't hurt much, right?\n\nAnother thing is to UI-wise maintain clear difference between cg-cancel\nand cg-restore. Do you think the names are distinctive enough? Any\nbetter naming ideas?\n\nThanks,\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"1970","messageId":"d4pfac$koj$1@sea.gmane.org","threadId":"347","inReplyTo":"20050428005337.GA3422@pasky.ji.cz","subject":"Re: Cogito nit: cg-update should default to \"origin\".","fromName":"Dan Holmsand","fromEmail":"holmsand@gmail.com","sentAt":"2005-04-28T01:52:22Z","receivedAt":"2005-04-28T01:52:22Z","isPatch":false,"sender":{"key":"holmsand@gmail.com","avatar":"https://gravatar.com/avatar/5c722084bafd85e754a02efad01fe69107eb6f393253c49232c5c9f7faa974df?d=mp&s=160"},"body":"Petr Baudis wrote:\n> Actually, I wasn't too happy with the current update-to-HEAD special\n> case. Sure, it's similar to SVN, but SVN's concepts are totally\n> different here, and this special case wart (which does really do\n> something entirely different than normal cg-update) is one of the\n> Cogito-related shadows in my mind. What about moving this special case\n> to something like\n> \n> \tcg-restore\n> \n> and changing the defaulting of update and pull back to 'origin'? I think\n> people do this cg-update without arguments so seldom that changing this\n> now shouldn't hurt much, right?\n\nHow about making the restore thing a special case of cg-cancel instead? \n\"Restore deleted files\", and \"restore deleted and modified files and \nunseek\" are similar enough that people will now where to look. Something \nlike \"cg-cancel -C\" (for careful), that only restores deleted files \nwould do it, I think.\n\n/dan\n\n"},{"id":"1972","messageId":"7vzmvjbqv5.fsf@assigned-by-dhcp.cox.net","threadId":"347","inReplyTo":"20050428003246.GV22956@pasky.ji.cz","subject":"Re: I'm missing isofs.h","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-04-28T02:02:38Z","receivedAt":"2005-04-28T02:02:38Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":">>>>> \"PB\" == Petr Baudis <pasky@ucw.cz> writes:\n\nPB> Dear diary, on Thu, Apr 28, 2005 at 02:19:07AM CEST, I got a letter\nPB> where Linus Torvalds <torvalds@osdl.org> told me that...\n>> And together with Junio's stuff from today, you can literally just do\n>> \n>> diff-cache -p $tree\n>> \n>> and you're done - it diffs any release \"$tree\" against the current state.\n\nPB> Actually, I can't; the patch generator is not on par with mine yet.\n\nThat's what GIT_EXTERNAL_DIFF is there for.\n\n\n"},{"id":"1985","messageId":"42705F3C.1000208@dwheeler.com","threadId":"347","inReplyTo":"20050428005337.GA3422@pasky.ji.cz","subject":"Re: Cogito nit: cg-update should default to \"origin\".","fromName":"David A. Wheeler","fromEmail":"dwheeler@dwheeler.com","sentAt":"2005-04-28T03:57:48Z","receivedAt":"2005-04-28T03:57:48Z","isPatch":false,"sender":{"key":"dwheeler@dwheeler.com","avatar":"https://avatars.githubusercontent.com/u/813150?v=4"},"body":"I said:\n>>Minor nit on Cogito: I think cg-update should default to \"origin\",\n>>not the head, if you leave it unspecified. ... The origin seems (to me)\n>>to be a MUCH more common situation (and thus the better default).\n\nPetr Baudis replied:\n> Actually, I wasn't too happy with the current update-to-HEAD special\n> case...\n\nSounds like we're in agreement! Once the special case goes\naway, cg-update in both concept & code essentially becomes:\n  cg-pull ${1:-origin} && cg-merge\nwhich has the wonderful advantage of being really, really\neasy to explain.  (\"cg-update ALWAYS pulls, then merges\").\n\n > I think people do this cg-update without arguments so seldom\n > that changing this now shouldn't hurt much, right?\n\nAbsolutely!  Indeed, I find myself doing:\n  cg-update {wait for something to happen} {oops} cg-update origin\n\n> What about moving this special case\n> to something like\n> \tcg-restore\n> and changing the defaulting of update and pull back to 'origin'?\n...\n> Another thing is to UI-wise maintain clear difference between cg-cancel\n> and cg-restore. Do you think the names are distinctive enough? Any\n> better naming ideas?\n\nGood names for these operations seem to be tough to find.\n\"cg-cancel\" seems odd anyway; you'd think you could\n\"cancel\" a commit and then the commit would stop existing\n(not true!).\n\nI looked at a thesaurus; other options to cancel & restore\ninclude: revert, recover, retrieve, reclaim, reclaim, undo.\nYou could even use the names cg-recover-deleted to recover\ndeleted files (what cg-update does now without parameters),\nand use cg-cancel-edits or cg-cancel-changes to make\nclearer commands.  But in the end I have a different idea, hold on...\n\nelsewhere Dan Holmsand said:\n >How about making the restore thing a special case of cg-cancel instead?\n >\"Restore deleted files\", and \"restore deleted and modified files and\n >unseek\" are similar enough that people will now where to look.\n >Something like \"cg-cancel -C\" (for careful), that only restores deleted\n >files would do it, I think.\n\nThere's a big risk of not including the \"-C\" and suddenly losing\neverthing.  Since there's NO way to recover these files,\na somewhat safer interface would probably be a better idea.\nBut merging the concepts may make sense if we can find a single\ncommand name that would help people figure this out.\n\nHow about \"cg-revert\" or \"cg-restore\"?  The word \"revert\" is even\nin the comments for cg-cancel, but now it makes sense to \"revert\"\nor \"restore\" the existence of a file (whereas it's really odd\nto \"cancel\" a file deletion).\n\nA serious problem with cg-cancel (and previous cg-undo) is\nbig data loss, no recovery, of your recent work.... if it's\ngoing to have less & more drastic operations, I'd sure hate\nfor the drastic operation to be the default.  There's also\nmissing functionality currently: often I want to revert to the\nunedited state for just a single file, or just restore a single file.\nSo, how about this:\n\ncg-revert [FILE...] or\ncg-revert [-d|--deleted]|[-a|--all]\n   Reverts some/all files back to the HEAD's state, eliminating changes\n\n   If given a list of 1 or more files, this reverts just the named files\n   to the HEAD state. If they were deleted, they are restored;\n   if they were edited, their edits are PERMANENTLY LOST.\n   If they haven't changed, nothing changes and there is no error.\n\n   If given -d or --deleted, it reverts all deleted files.\n   If given -a or --all, it reverts all files\n   (everything), resuling in loss of all edits and removals.\n\nHow's that for a reasonable UI, replacing both cg-cancel\nand cg-update's current no-parameter functionality?\n\n--- David A. Wheeler\n\n"},{"id":"2001","messageId":"7vhdhra2sg.fsf@assigned-by-dhcp.cox.net","threadId":"347","inReplyTo":"20050428003246.GV22956@pasky.ji.cz","subject":"Re: I'm missing isofs.h","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-04-28T05:27:59Z","receivedAt":"2005-04-28T05:27:59Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":">>>>> \"PB\" == Petr Baudis <pasky@ucw.cz> writes:\n\nPB> Actually, I can't; the patch generator is not on par with mine yet.\nPB> It does not show modes and does not indicate file adds/removals by\nPB> /dev/null - basically, I need something cg-patch can eat (and it should\nPB> be backwards compatible). I think throwing the sha1 hashes away will not\nPB> harm; I got used to the Index: field and === marker, but I don't care if\nPB> I loose it.\n\nI've looked at what cg-Xdiffdo does.  From the above paragraph,\nI sense that it does more than what cg-patch requires, so I took\na look at cg-patch, too.  \n\nCan you help me verify if I understand the requirements cg-patch\nhas on its input correctly?\n\n - Follow the convention of showing newly added files with\n   \"--- /dev/null\" and removed files with \"+++ /dev/null\";\n\n - Label matches this Perl regexp:\n\n     m|^(---|\\+\\+\\+)\\s+[^/]+\\/(\\S+)\\s+.*mode:([0-7]{3,}).*/|\n\n   and you only care about sign ($1), filename ($2) and mode ($3).\n\nTo illustrate, cg-Xdiffdo generates something like:\n\n (modified files)\n --- FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/fs/ext3/Makefile  (mode:0644)\n +++ EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE/fs/ext3/Makefile  (mode:0664)\n\n (deleted files)\n --- FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/fs/ext3/Makefile  (mode:0644)\n +++ /dev/null  (tree:EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE)\n\n (added files)\n --- /dev/null  (tree:EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE)\n +++ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/fs/ext3/Makefile  (mode:0644)\n\nbut they could be like the following to satisfy cg-patch:\n\n (modified files)\n --- a/fs/ext3/Makefile  (mode:0644)\n +++ b/fs/ext3/Makefile  (mode:0664)\n\n (deleted files)\n --- a/fs/ext3/Makefile  (mode:0644)\n +++ /dev/null\n\n (added files)\n --- /dev/null\n +++ b/fs/ext3/Makefile  (mode:0644)\n\nIs my understanding correct?  If so it should not be too much\nwork to generate something like it from within the builtin\nstuff.\n\nProvided if that is what the kernel folks can live with (I do\nsee why the tool wants the mode bits, but it is unusual to see\nnon-timestamp strings after filenames).\n\nLinus & Andrew, is the above (second) format acceptable for the\nkernel work?\n\n"},{"id":"2007","messageId":"7vbr7z9zzs.fsf_-_@assigned-by-dhcp.cox.net","threadId":"347","inReplyTo":"7vhdhra2sg.fsf@assigned-by-dhcp.cox.net","subject":"[PATCH] Make diff-cache and friends output more cg-patch friendly.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-04-28T06:28:23Z","receivedAt":"2005-04-28T06:28:23Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"This patch changes the way the default arguments to diff are\nbuilt when diff-cache and friends are invoked with -p and there\nis no GIT_EXTERNAL_DIFF environment variable.  It attempts to be\nmore cg-patch friendly by:\n\n - Showing diffs against /dev/null to denote added or removed\n   files;\n\n - Showing file modes for existing files as a comment after the\n   diff label.\n\nUnfortunately with this change GIT_DIFF_CMD customization cannot\nbe supported easily anymore, so it has been dropped.\nGIT_DIFF_OPTS customization to change diffs from unified to\ncontext is still there, though.\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\n---\n\ndiff.c |   56 ++++++++++++++++++++++++++++++++++++--------------------\n1 files changed, 36 insertions(+), 20 deletions(-)\n\n# - 04/27 21:50 diff.c clean up temporary file.\n# + 04/27 23:18 Attempt to minimally be compatible with cg-Xdiffdo.\n--- k/diff.c  (mode:100644)\n+++ l/diff.c  (mode:100644)\n@@ -7,7 +7,6 @@\n #include \"cache.h\"\n #include \"diff.h\"\n \n-static char *diff_cmd = \"diff -L'k/%s' -L'l/%s'\";\n static char *diff_opts = \"-pu\";\n \n static const char *external_diff(void)\n@@ -24,14 +23,12 @@ static const char *external_diff(void)\n \t * alternative styles you can specify via environment\n \t * variables are:\n \t *\n-\t * GIT_DIFF_CMD=\"diff -L '%s' -L '%s'\"\n \t * GIT_DIFF_OPTS=\"-c\";\n \t */\n \tif (getenv(\"GIT_EXTERNAL_DIFF\"))\n \t\texternal_diff_cmd = getenv(\"GIT_EXTERNAL_DIFF\");\n \n \t/* In case external diff fails... */\n-\tdiff_cmd = getenv(\"GIT_DIFF_CMD\") ? : diff_cmd;\n \tdiff_opts = getenv(\"GIT_DIFF_OPTS\") ? : diff_opts;\n \n \tdone_preparing = 1;\n@@ -84,31 +81,50 @@ static struct diff_tempfile {\n static void builtin_diff(const char *name,\n \t\t\t struct diff_tempfile *temp)\n {\n-\tstatic char *diff_arg  = \"'%s' '%s'\";\n-\tconst char *name_1_sq = sq_expand(temp[0].name);\n-\tconst char *name_2_sq = sq_expand(temp[1].name);\n+\tint i, next_at;\n+\tconst char *diff_cmd = \"diff -L'%s%s%s' -L'%s%s%s'\";\n+\tconst char *diff_arg  = \"'%s' '%s'\";\n+\tconst char *input_name_sq[2];\n+\tconst char *path0[2];\n+\tconst char *path1[2];\n+\tchar mode[2][20];\n \tconst char *name_sq = sq_expand(name);\n-\n-\t/* diff_cmd and diff_arg have 4 %s in total which makes\n-\t * the sum of these strings 8 bytes larger than required.\n+\tchar *cmd;\n+\t\n+\t/* diff_cmd and diff_arg have 8 %s in total which makes\n+\t * the sum of these strings 16 bytes larger than required.\n \t * we use 2 spaces around diff-opts, and we need to count\n-\t * terminating NUL, so we subtract 5 here.\n+\t * terminating NUL, so we subtract 13 here.\n \t */\n-\tint cmd_size = (strlen(diff_cmd) + \n-\t\t\tstrlen(name_sq) * 2 +\n-\t\t\tstrlen(diff_opts) +\n-\t\t\tstrlen(diff_arg) +\n-\t\t\tstrlen(name_1_sq) + strlen(name_2_sq)\n-\t\t\t- 5);\n-\tchar *cmd = xmalloc(cmd_size);\n-\tint next_at = 0;\n+\tint cmd_size = (strlen(diff_cmd) + strlen(diff_opts) +\n+\t\t\tstrlen(diff_arg) - 13);\n+\tfor (i = 0; i < 2; i++) {\n+\t\tinput_name_sq[i] = sq_expand(temp[i].name);\n+\t\tif (!strcmp(temp[i].name, \"/dev/null\")) {\n+\t\t\tpath0[i] = \"/dev/null\";\n+\t\t\tpath1[i] = \"\";\n+\t\t\tmode[i][0] = 0;\n+\t\t} else {\n+\t\t\tpath0[i] = i ? \"l/\" : \"k/\";\n+\t\t\tpath1[i] = name_sq;\n+\t\t\tsprintf(mode[i], \"  (mode:%s)\", temp[i].mode);\n+\t\t}\n+\t\tcmd_size += (strlen(path0[i]) + strlen(path1[i]) +\n+\t\t\t     strlen(mode[i]) + strlen(input_name_sq[i]));\n+\t}\n+\n+\tcmd = xmalloc(cmd_size);\n \n+\tnext_at = 0;\n \tnext_at += snprintf(cmd+next_at, cmd_size-next_at,\n-\t\t\t    diff_cmd, name_sq, name_sq);\n+\t\t\t    diff_cmd,\n+\t\t\t    path0[0], path1[0], mode[0],\n+\t\t\t    path0[1], path1[1], mode[1]);\n \tnext_at += snprintf(cmd+next_at, cmd_size-next_at,\n \t\t\t    \" %s \", diff_opts);\n \tnext_at += snprintf(cmd+next_at, cmd_size-next_at,\n-\t\t\t    diff_arg, name_1_sq, name_2_sq);\n+\t\t\t    diff_arg, input_name_sq[0], input_name_sq[1]);\n+\n \texeclp(\"/bin/sh\",\"sh\", \"-c\", cmd, NULL);\n }\n \n\n"},{"id":"2014","messageId":"20050428075244.GE8612@pasky.ji.cz","threadId":"347","inReplyTo":"7vhdhra2sg.fsf@assigned-by-dhcp.cox.net","subject":"Re: I'm missing isofs.h","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-04-28T07:52:44Z","receivedAt":"2005-04-28T07:52:44Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Thu, Apr 28, 2005 at 07:27:59AM CEST, I got a letter\nwhere Junio C Hamano <junkio@cox.net> told me that...\n> PB> Actually, I can't; the patch generator is not on par with mine yet.\n> PB> It does not show modes and does not indicate file adds/removals by\n> PB> /dev/null - basically, I need something cg-patch can eat (and it should\n> PB> be backwards compatible). I think throwing the sha1 hashes away will not\n> PB> harm; I got used to the Index: field and === marker, but I don't care if\n> PB> I loose it.\n> \n> I've looked at what cg-Xdiffdo does.  From the above paragraph,\n> I sense that it does more than what cg-patch requires, so I took\n> a look at cg-patch, too.  \n\nYes; that was what the last sentence was about. ;-)\n\n> Can you help me verify if I understand the requirements cg-patch\n> has on its input correctly?\n> \n>  - Follow the convention of showing newly added files with\n>    \"--- /dev/null\" and removed files with \"+++ /dev/null\";\n\nYes.\n\n>  - Label matches this Perl regexp:\n> \n>      m|^(---|\\+\\+\\+)\\s+[^/]+\\/(\\S+)\\s+.*mode:([0-7]{3,}).*/|\n> \n>    and you only care about sign ($1), filename ($2) and mode ($3).\n\nYes..\n\n>  (modified files)\n>  --- a/fs/ext3/Makefile  (mode:0644)\n>  +++ b/fs/ext3/Makefile  (mode:0664)\n> \n>  (deleted files)\n>  --- a/fs/ext3/Makefile  (mode:0644)\n>  +++ /dev/null\n> \n>  (added files)\n>  --- /dev/null\n>  +++ b/fs/ext3/Makefile  (mode:0644)\n> \n> Is my understanding correct?  If so it should not be too much\n> work to generate something like it from within the builtin\n> stuff.\n\nYes, perfectly.\n\n> Provided if that is what the kernel folks can live with (I do\n> see why the tool wants the mode bits, but it is unusual to see\n> non-timestamp strings after filenames).\n\nThere's no reason not to get the timestamps too if you can; just put\nthem after the attributes. They aren't in the diff now either.\n\nI need the mode bits to set the mode right, surprisingly. :-) Yes, in\npart it is a leftover from the old times when we didn't just track the\nexecute bit; I don't know if it is worth changing this.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"2016","messageId":"d4q66k$gv9$1@sea.gmane.org","threadId":"347","inReplyTo":"42705F3C.1000208@dwheeler.com","subject":"Re: Cogito nit: cg-update should default to \"origin\".","fromName":"Dan Holmsand","fromEmail":"holmsand@gmail.com","sentAt":"2005-04-28T08:22:57Z","receivedAt":"2005-04-28T08:22:57Z","isPatch":false,"sender":{"key":"holmsand@gmail.com","avatar":"https://gravatar.com/avatar/5c722084bafd85e754a02efad01fe69107eb6f393253c49232c5c9f7faa974df?d=mp&s=160"},"body":"David A. Wheeler wrote:\n> So, how about this:\n> \n> cg-revert [FILE...] or\n> cg-revert [-d|--deleted]|[-a|--all]\n>   Reverts some/all files back to the HEAD's state, eliminating changes\n\nThat's very good (and much better than my idea).\n\n/dan\n\n"},{"id":"2039","messageId":"Pine.LNX.4.58.0504280740450.18901@ppc970.osdl.org","threadId":"347","inReplyTo":"7vhdhra2sg.fsf@assigned-by-dhcp.cox.net","subject":"Re: I'm missing isofs.h","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-04-28T14:42:36Z","receivedAt":"2005-04-28T14:42:36Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Wed, 27 Apr 2005, Junio C Hamano wrote:\n> \n> Linus & Andrew, is the above (second) format acceptable for the\n> kernel work?\n\nThe only thing my stuff needs is that it's \"-p1\" format, but I don't care \nif the prefix is the sha1 tree-name, or \"a/\" and \"b/\" or anything else (I \nthink the current thing that the built-in stuff defaults to is a bit \nstrange. \"k/\" and \"l/\"? I understand \"a/\" and \"b/\", and I'd even get \"x/\" \nand \"y/\" or \"old/\" and \"new/\", but starting counting at \"l\" is strange ;)\n\n\t\tLinus\n"},{"id":"2046","messageId":"7vvf6698zq.fsf@assigned-by-dhcp.cox.net","threadId":"347","inReplyTo":"Pine.LNX.4.58.0504280740450.18901@ppc970.osdl.org","subject":"Re: I'm missing isofs.h","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-04-28T16:11:37Z","receivedAt":"2005-04-28T16:11:37Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":">>>>> \"LT\" == Linus Torvalds <torvalds@osdl.org> writes:\n\nLT> On Wed, 27 Apr 2005, Junio C Hamano wrote:\n>> \n>> Linus & Andrew, is the above (second) format acceptable for the\n>> kernel work?\n\nLT> The only thing my stuff needs is that it's \"-p1\" format, ...\n\nIs /dev/null convention OK with you?  I know it is OK for patch\nand cg-patch, both of which have built-in knowledge of the\nconvention, but other tools may get confused.  Here is an\nexample of diffstat getting confused:\n\n    $ jit-snap -v linus-mirror:0 Makefile comm-z.c\n    # - [PATCH] diff-tree -p implies diff-tree -p -r\n    # + JIT: indent help text from jit-snap.\n    --- k/Makefile  (mode:100644)\n    +++ l/Makefile  (mode:100644)\n    @@ -7,7 +7,8 @@\n     # BREAK YOUR LOCAL DIFFS! show-diff and anything us.....\n     # break unless your underlying filesystem supports .....\n    ...\n    --- /dev/null\n    +++ l/comm-z.c  (mode:100644)\n    @@ -0,0 +1,101 @@\n    +#include <stdio.h>\n    +#include <string.h>\n    ...\n\n    $ jit-snap -v linus-mirror:0 Makefile comm-z.c | diffstat\n    Makefile   |   15 +++++++--\n    l/comm-z.c |  101 ++++++++++++++++++++++++++++++++++.....\n     2 files changed, 114 insertions(+), 2 deletions(-)\n\nLT> ... but I don't care \nLT> if the prefix is the sha1 tree-name, or \"a/\" and \"b/\" or anything else (I \nLT> think the current thing that the built-in stuff defaults to is a bit \nLT> strange. \"k/\" and \"l/\"? I understand \"a/\" and \"b/\", and I'd even get \"x/\" \nLT> and \"y/\" or \"old/\" and \"new/\", but starting counting at \"l\" is strange ;)\n\nI am _very_ glad somebody finally has noticed and voiced the\npuzzlement.  It is meant to be a gentle reminder that the tool's\nprimary purpose is to support development of l-k ;-).\n\nI do not mind if you told me to change them to a/ or b/ (or do\nit yourself---it is a single character change in the source) if\nyou want.\n\n"},{"id":"2047","messageId":"Pine.LNX.4.58.0504280918230.18901@ppc970.osdl.org","threadId":"347","inReplyTo":"7vvf6698zq.fsf@assigned-by-dhcp.cox.net","subject":"Re: I'm missing isofs.h","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-04-28T16:28:23Z","receivedAt":"2005-04-28T16:28:23Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Thu, 28 Apr 2005, Junio C Hamano wrote:\n> \n> Is /dev/null convention OK with you?\n\nAbsolutely. In fact, I prefer it, but I end up just using standard \"patch \n-p1\" in the end, so..\n\n> Here is an example of diffstat getting confused:\n\ndiffstat is _way_ too easily confused by various things. I've seen it\nclaim \"no files\" just because the diff had some headers that confused it.  \nAnd yes, you should always tell it to use \"-p1\" to get the right\npathnames, otherwise it does nonsensical things (if all the diffs happen\nto be in \"drivers/usb/\" it ends up deciding that that's just a common\nprefix, and won't actually show it at all).\n\nHowever, I'm surprised that it's confused by /dev/null. Usually the \nconfusion comes from the stuff _after_ the name (ie adding the \"mode\" etc \nis what I'd have expected to confuse it).\n\nOne way to un-confuse diffstat is to add the \"Index: \" line. I'm not\nactually much of a fan of Index: lines myself, and I'd rather somebody\nfixed diffstat, but they _do_ work around diffstat problems.\n\n\t\tLinus\n"},{"id":"2111","messageId":"42717418.6050409@dwheeler.com","threadId":"347","inReplyTo":"20050428075244.GE8612@pasky.ji.cz","subject":"Re: I'm missing isofs.h","fromName":"David A. Wheeler","fromEmail":"dwheeler@dwheeler.com","sentAt":"2005-04-28T23:39:04Z","receivedAt":"2005-04-28T23:39:04Z","isPatch":false,"sender":{"key":"dwheeler@dwheeler.com","avatar":"https://avatars.githubusercontent.com/u/813150?v=4"},"body":"Petr Baudis wrote:\n> There's no reason not to get the timestamps too if you can; just put\n> them after the attributes. They aren't in the diff now either.\n> \n> I need the mode bits to set the mode right, surprisingly. :-) Yes, in\n> part it is a leftover from the old times when we didn't just track the\n> execute bit; I don't know if it is worth changing this.\n\nActually, I like having the full mode bits in there.\n\"git\" actually can be useful as a more general capability for\nkeeping careful track of an entire tree that's NOT just source code\n(e.g., your entire home directory tree, so you can replicate it\nacross machines in its current state).\n\nI can easily imagine an option flag\nthat stores \"modes as they really are\", and another that says\n\"use the modes as they are stored\".  Add some support for symlinks,\nand you could do quite a bit. Timestamps would be ducky,\ntoo, for the same reason.\n\n--- David A. Wheeler\n"}]}