{"thread":{"id":"10312","subject":"[PATCH 2/3] git-cvsexportcommit.perl tmpdir removed","startedAt":"2007-10-16T08:08:12Z","lastAt":"2007-10-20T13:59:52Z","messageCount":13,"participants":["Michael Witten","Johannes Schindelin","Robin Rosenberg","Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"56004","messageId":"1192522094-4988-1-git-send-email-mfwitten@mit.edu","threadId":"10312","inReplyTo":null,"subject":"[PATCH 1/3] git-cvsexportcommit.perl tabified","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-16T08:08:12Z","receivedAt":"2007-10-16T08:08:12Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"Signed-off-by: Michael Witten <mfwitten@mit.edu>\n---\n    This patch attempts to tabify this code.\n    Please be gentle, this is my second time\n    submitting a patch.\n\n git-cvsexportcommit.perl |  284 +++++++++++++++++++++++-----------------------\n 1 files changed, 141 insertions(+), 143 deletions(-)\n\ndiff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\nindex a33fa8d..b330c3d 100755\n--- a/git-cvsexportcommit.perl\n+++ b/git-cvsexportcommit.perl\n@@ -12,7 +12,7 @@ use Data::Dumper;\n use File::Basename qw(basename dirname);\n \n unless ($ENV{GIT_DIR} && -r $ENV{GIT_DIR}){\n-    die \"GIT_DIR is not defined or is unreadable\";\n+\tdie \"GIT_DIR is not defined or is unreadable\";\n }\n \n our ($opt_h, $opt_P, $opt_p, $opt_v, $opt_c, $opt_f, $opt_a, $opt_m, $opt_d, $opt_u);\n@@ -25,15 +25,13 @@ die \"Need at least one commit identifier!\" unless @ARGV;\n \n my @cvs;\n if ($opt_d) {\n-\t@cvs = ('cvs', '-d', $opt_d);\n+\t\t@cvs = ('cvs', '-d', $opt_d);\n } else {\n-\t@cvs = ('cvs');\n+\t\t@cvs = ('cvs');\n }\n \n # setup a tempdir\n-our ($tmpdir, $tmpdirname) = tempdir('git-cvsapplycommit-XXXXXX',\n-\t\t\t\t     TMPDIR => 1,\n-\t\t\t\t     CLEANUP => 1);\n+our ($tmpdir, $tmpdirname) = tempdir('git-cvsapplycommit-XXXXXX', TMPDIR => 1, CLEANUP => 1);\n \n # resolve target commit\n my $commit;\n@@ -41,18 +39,18 @@ $commit = pop @ARGV;\n $commit = safe_pipe_capture('git-rev-parse', '--verify', \"$commit^0\");\n chomp $commit;\n if ($?) {\n-    die \"The commit reference $commit did not resolve!\";\n+\tdie \"The commit reference $commit did not resolve!\";\n }\n \n # resolve what parent we want\n my $parent;\n if (@ARGV) {\n-    $parent = pop @ARGV;\n-    $parent =  safe_pipe_capture('git-rev-parse', '--verify', \"$parent^0\");\n-    chomp $parent;\n-    if ($?) {\n-\tdie \"The parent reference did not resolve!\";\n-    }\n+\t$parent = pop @ARGV;\n+\t$parent =  safe_pipe_capture('git-rev-parse', '--verify', \"$parent^0\");\n+\tchomp $parent;\n+\tif ($?) {\n+\t\tdie \"The parent reference did not resolve!\";\n+\t}\n }\n \n # find parents from the commit itself\n@@ -65,44 +63,44 @@ my $title;\n my $msg = '';\n \n foreach my $line (@commit) {\n-    chomp $line;\n-    if ($stage eq 'headers' && $line eq '') {\n-\t$stage = 'msg';\n-\tnext;\n-    }\n-\n-    if ($stage eq 'headers') {\n-\tif ($line =~ m/^parent (\\w{40})$/) { # found a parent\n-\t    push @parents, $1;\n-\t} elsif ($line =~ m/^author (.+) \\d+ [-+]\\d+$/) {\n-\t    $author = $1;\n-\t} elsif ($line =~ m/^committer (.+) \\d+ [-+]\\d+$/) {\n-\t    $committer = $1;\n+\tchomp $line;\n+\tif ($stage eq 'headers' && $line eq '') {\n+\t\t$stage = 'msg';\n+\t\tnext;\n \t}\n-    } else {\n-\t$msg .= $line . \"\\n\";\n-\tunless ($title) {\n-\t    $title = $line;\n+\n+\tif ($stage eq 'headers') {\n+\t\tif ($line =~ m/^parent (\\w{40})$/) { # found a parent\n+\t\t\tpush @parents, $1;\n+\t\t} elsif ($line =~ m/^author (.+) \\d+ [-+]\\d+$/) {\n+\t\t\t$author = $1;\n+\t\t} elsif ($line =~ m/^committer (.+) \\d+ [-+]\\d+$/) {\n+\t\t\t$committer = $1;\n+\t\t}\n+\t} else {\n+\t\t$msg .= $line . \"\\n\";\n+\t\tunless ($title) {\n+\t\t\t$title = $line;\n+\t\t}\n \t}\n-    }\n }\n \n if ($parent) {\n-    my $found;\n-    # double check that it's a valid parent\n-    foreach my $p (@parents) {\n-\tif ($p eq $parent) {\n-\t    $found = 1;\n-\t    last;\n-\t}; # found it\n-    }\n-    die \"Did not find $parent in the parents for this commit!\" if !$found and !$opt_P;\n+\tmy $found;\n+\t# double check that it's a valid parent\n+\tforeach my $p (@parents) {\n+\t\tif ($p eq $parent) {\n+\t\t\t$found = 1;\n+\t\t\tlast;\n+\t\t}; # found it\n+\t}\n+\tdie \"Did not find $parent in the parents for this commit!\" if !$found and !$opt_P;\n } else { # we don't have a parent from the cmdline...\n-    if (@parents == 1) { # it's safe to get it from the commit\n-\t$parent = $parents[0];\n-    } else { # or perhaps not!\n-\tdie \"This commit has more than one parent -- please name the parent you want to use explicitly\";\n-    }\n+\tif (@parents == 1) { # it's safe to get it from the commit\n+\t\t$parent = $parents[0];\n+\t} else { # or perhaps not!\n+\t\tdie \"This commit has more than one parent -- please name the parent you want to use explicitly\";\n+\t}\n }\n \n $opt_v && print \"Applying to CVS commit $commit from parent $parent\\n\";\n@@ -110,14 +108,14 @@ $opt_v && print \"Applying to CVS commit $commit from parent $parent\\n\";\n # grab the commit message\n open(MSG, \">.msg\") or die \"Cannot open .msg for writing\";\n if ($opt_m) {\n-    print MSG $opt_m;\n+\tprint MSG $opt_m;\n }\n print MSG $msg;\n if ($opt_a) {\n-    print MSG \"\\n\\nAuthor: $author\\n\";\n-    if ($author ne $committer) {\n-\tprint MSG \"Committer: $committer\\n\";\n-    }\n+\tprint MSG \"\\n\\nAuthor: $author\\n\";\n+\tif ($author ne $committer) {\n+\t\tprint MSG \"Committer: $committer\\n\";\n+\t}\n }\n close MSG;\n \n@@ -153,70 +151,70 @@ map { s/\\\\([0-7]{3})/sprintf('%c',oct $1)/eg } @bfiles,@files;\n my $dirty;\n my @dirs;\n foreach my $p (@afiles) {\n-    my $path = dirname $p;\n-    while (!-d $path and ! grep { $_ eq $path } @dirs) {\n-\tunshift @dirs, $path;\n-\t$path = dirname $path;\n-    }\n+\tmy $path = dirname $p;\n+\twhile (!-d $path and ! grep { $_ eq $path } @dirs) {\n+\t\tunshift @dirs, $path;\n+\t\t$path = dirname $path;\n+\t}\n }\n \n # ... check dirs,\n foreach my $d (@dirs) {\n-    if (-e $d) {\n-\t$dirty = 1;\n-\twarn \"$d exists and is not a directory!\\n\";\n-    }\n+\tif (-e $d) {\n+\t\t$dirty = 1;\n+\t\twarn \"$d exists and is not a directory!\\n\";\n+\t}\n }\n \n # ... query status of all files that we have a directory for and parse output of 'cvs status' to %cvsstat.\n my @canstatusfiles;\n foreach my $f (@files) {\n-    my $path = dirname $f;\n-    next if (grep { $_ eq $path } @dirs);\n-    push @canstatusfiles, $f;\n+\tmy $path = dirname $f;\n+\tnext if (grep { $_ eq $path } @dirs);\n+\tpush @canstatusfiles, $f;\n }\n \n my %cvsstat;\n if (@canstatusfiles) {\n-    if ($opt_u) {\n-      my @updated = safe_pipe_capture(@cvs, 'update', @canstatusfiles);\n-      print @updated;\n-    }\n-    my @cvsoutput;\n-    @cvsoutput= safe_pipe_capture(@cvs, 'status', @canstatusfiles);\n-    my $matchcount = 0;\n-    foreach my $l (@cvsoutput) {\n-        chomp $l;\n-        if ( $l =~ /^File:/ and  $l =~ /Status: (.*)$/ ) {\n-            $cvsstat{$canstatusfiles[$matchcount]} = $1;\n-            $matchcount++;\n-        }\n-    }\n+\tif ($opt_u) {\n+\t  my @updated = safe_pipe_capture(@cvs, 'update', @canstatusfiles);\n+\t  print @updated;\n+\t}\n+\tmy @cvsoutput;\n+\t@cvsoutput= safe_pipe_capture(@cvs, 'status', @canstatusfiles);\n+\tmy $matchcount = 0;\n+\tforeach my $l (@cvsoutput) {\n+\t\tchomp $l;\n+\t\tif ( $l =~ /^File:/ and  $l =~ /Status: (.*)$/ ) {\n+\t\t\t$cvsstat{$canstatusfiles[$matchcount]} = $1;\n+\t\t\t$matchcount++;\n+\t\t}\n+\t}\n }\n \n # ... validate new files,\n foreach my $f (@afiles) {\n-    if (defined ($cvsstat{$f}) and $cvsstat{$f} ne \"Unknown\") {\n-\t$dirty = 1;\n-\twarn \"File $f is already known in your CVS checkout -- perhaps it has been added by another user. Or this may indicate that it exists on a different branch. If this is the case, use -f to force the merge.\\n\";\n-\twarn \"Status was: $cvsstat{$f}\\n\";\n-    }\n+\tif (defined ($cvsstat{$f}) and $cvsstat{$f} ne \"Unknown\") {\n+\t\t$dirty = 1;\n+\t\twarn \"File $f is already known in your CVS checkout -- perhaps it has been added by another user. Or this may indicate that it exists on a different branch. If this is the case, use -f to force the merge.\\n\";\n+\t\twarn \"Status was: $cvsstat{$f}\\n\";\n+\t}\n }\n # ... validate known files.\n foreach my $f (@files) {\n-    next if grep { $_ eq $f } @afiles;\n-    # TODO:we need to handle removed in cvs\n-    unless (defined ($cvsstat{$f}) and $cvsstat{$f} eq \"Up-to-date\") {\n-\t$dirty = 1;\n-\twarn \"File $f not up to date but has status '$cvsstat{$f}' in your CVS checkout!\\n\";\n-    }\n+\tnext if grep { $_ eq $f } @afiles;\n+\t# TODO:we need to handle removed in cvs\n+\tunless (defined ($cvsstat{$f}) and $cvsstat{$f} eq \"Up-to-date\") {\n+\t\t$dirty = 1;\n+\t\twarn \"File $f not up to date but has status '$cvsstat{$f}' in your CVS checkout!\\n\";\n+\t}\n }\n if ($dirty) {\n-    if ($opt_f) {\twarn \"The tree is not clean -- forced merge\\n\";\n-\t$dirty = 0;\n-    } else {\n-\tdie \"Exiting: your CVS tree is not clean for this merge.\";\n-    }\n+\tif ($opt_f) {\t\twarn \"The tree is not clean -- forced merge\\n\";\n+\t\t$dirty = 0;\n+\t} else {\n+\t\tdie \"Exiting: your CVS tree is not clean for this merge.\";\n+\t}\n }\n \n print \"Applying\\n\";\n@@ -225,30 +223,30 @@ print \"Applying\\n\";\n print \"Patch applied successfully. Adding new files and directories to CVS\\n\";\n my $dirtypatch = 0;\n foreach my $d (@dirs) {\n-    if (system(@cvs,'add',$d)) {\n-\t$dirtypatch = 1;\n-\twarn \"Failed to cvs add directory $d -- you may need to do it manually\";\n-    }\n+\tif (system(@cvs,'add',$d)) {\n+\t\t$dirtypatch = 1;\n+\t\twarn \"Failed to cvs add directory $d -- you may need to do it manually\";\n+\t}\n }\n \n foreach my $f (@afiles) {\n-    if (grep { $_ eq $f } @bfiles) {\n-      system(@cvs, 'add','-kb',$f);\n-    } else {\n-      system(@cvs, 'add', $f);\n-    }\n-    if ($?) {\n-\t$dirtypatch = 1;\n-\twarn \"Failed to cvs add $f -- you may need to do it manually\";\n-    }\n+\tif (grep { $_ eq $f } @bfiles) {\n+\t\tsystem(@cvs, 'add','-kb',$f);\n+\t} else {\n+\t\tsystem(@cvs, 'add', $f);\n+\t}\n+\tif ($?) {\n+\t\t$dirtypatch = 1;\n+\t\twarn \"Failed to cvs add $f -- you may need to do it manually\";\n+\t}\n }\n \n foreach my $f (@dfiles) {\n-    system(@cvs, 'rm', '-f', $f);\n-    if ($?) {\n-\t$dirtypatch = 1;\n-\twarn \"Failed to cvs rm -f $f -- you may need to do it manually\";\n-    }\n+\tsystem(@cvs, 'rm', '-f', $f);\n+\tif ($?) {\n+\t\t$dirtypatch = 1;\n+\t\twarn \"Failed to cvs rm -f $f -- you may need to do it manually\";\n+\t}\n }\n \n print \"Commit to CVS\\n\";\n@@ -257,25 +255,25 @@ my @commitfiles = map { unless (m/\\s/) { '\\''.$_.'\\''; } else { $_; }; } (@files\n my $cmd = join(' ', @cvs).\" commit -F .msg @commitfiles\";\n \n if ($dirtypatch) {\n-    print \"NOTE: One or more hunks failed to apply cleanly.\\n\";\n-    print \"You'll need to apply the patch in .cvsexportcommit.diff manually\\n\";\n-    print \"using a patch program. After applying the patch and resolving the\\n\";\n-    print \"problems you may commit using:\";\n-    print \"\\n    $cmd\\n\\n\";\n-    exit(1);\n+\tprint \"NOTE: One or more hunks failed to apply cleanly.\\n\";\n+\tprint \"You'll need to apply the patch in .cvsexportcommit.diff manually\\n\";\n+\tprint \"using a patch program. After applying the patch and resolving the\\n\";\n+\tprint \"problems you may commit using:\";\n+\tprint \"\\n\t$cmd\\n\\n\";\n+\texit(1);\n }\n \n if ($opt_c) {\n-    print \"Autocommit\\n  $cmd\\n\";\n-    print safe_pipe_capture(@cvs, 'commit', '-F', '.msg', @files);\n-    if ($?) {\n-\tdie \"Exiting: The commit did not succeed\";\n-    }\n-    print \"Committed successfully to CVS\\n\";\n-    # clean up\n-    unlink(\".msg\");\n+\tprint \"Autocommit\\n  $cmd\\n\";\n+\tprint safe_pipe_capture(@cvs, 'commit', '-F', '.msg', @files);\n+\tif ($?) {\n+\t\tdie \"Exiting: The commit did not succeed\";\n+\t}\n+\tprint \"Committed successfully to CVS\\n\";\n+\t# clean up\n+\tunlink(\".msg\");\n } else {\n-    print \"Ready for you to commit, just run:\\n\\n   $cmd\\n\";\n+\tprint \"Ready for you to commit, just run:\\n\\n   $cmd\\n\";\n }\n \n # clean up\n@@ -297,25 +295,25 @@ END\n # to work around shell problems with weird characters in arguments\n # if the exec returns non-zero we die\n sub safe_pipe_capture {\n-    my @output;\n-    if (my $pid = open my $child, '-|') {\n-\t@output = (<$child>);\n-\tclose $child or die join(' ',@_).\": $! $?\";\n-    } else {\n-\texec(@_) or die \"$! $?\"; # exec() can fail the executable can't be found\n-    }\n-    return wantarray ? @output : join('',@output);\n+\tmy @output;\n+\tif (my $pid = open my $child, '-|') {\n+\t\t@output = (<$child>);\n+\t\tclose $child or die join(' ',@_).\": $! $?\";\n+\t} else {\n+\t\texec(@_) or die \"$! $?\"; # exec() can fail the executable can't be found\n+\t}\n+\treturn wantarray ? @output : join('',@output);\n }\n \n sub safe_pipe_capture_blob {\n-    my $output;\n-    if (my $pid = open my $child, '-|') {\n-        local $/;\n-\tundef $/;\n-\t$output = (<$child>);\n-\tclose $child or die join(' ',@_).\": $! $?\";\n-    } else {\n-\texec(@_) or die \"$! $?\"; # exec() can fail the executable can't be found\n-    }\n-    return $output;\n+\tmy $output;\n+\tif (my $pid = open my $child, '-|') {\n+\t\tlocal $/;\n+\t\tundef $/;\n+\t\t$output = (<$child>);\n+\t\tclose $child or die join(' ',@_).\": $! $?\";\n+\t} else {\n+\t\texec(@_) or die \"$! $?\"; # exec() can fail the executable can't be found\n+\t}\n+\treturn $output;\n }\n-- \n1.5.3.4.207.g6d7480-dirty\n"},{"id":"56003","messageId":"1192522094-4988-2-git-send-email-mfwitten@mit.edu","threadId":"10312","inReplyTo":"1192522094-4988-1-git-send-email-mfwitten@mit.edu","subject":"[PATCH 2/3] git-cvsexportcommit.perl tmpdir removed","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-16T08:08:13Z","receivedAt":"2007-10-16T08:08:13Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"Signed-off-by: Michael Witten <mfwitten@mit.edu>\n---\n    This is perhaps a duplicate of another patch sent in,\n    but it applies to the tabified version.\n    \n git-cvsexportcommit.perl |    3 ---\n 1 files changed, 0 insertions(+), 3 deletions(-)\n\ndiff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\nindex b330c3d..869c8b5 100755\n--- a/git-cvsexportcommit.perl\n+++ b/git-cvsexportcommit.perl\n@@ -30,9 +30,6 @@ if ($opt_d) {\n \t\t@cvs = ('cvs');\n }\n \n-# setup a tempdir\n-our ($tmpdir, $tmpdirname) = tempdir('git-cvsapplycommit-XXXXXX', TMPDIR => 1, CLEANUP => 1);\n-\n # resolve target commit\n my $commit;\n $commit = pop @ARGV;\n-- \n1.5.3.4.207.g6d7480-dirty\n"},{"id":"56005","messageId":"1192522094-4988-3-git-send-email-mfwitten@mit.edu","threadId":"10312","inReplyTo":"1192522094-4988-2-git-send-email-mfwitten@mit.edu","subject":"[PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-16T08:08:14Z","receivedAt":"2007-10-16T08:08:14Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"Signed-off-by: Michael Witten <mfwitten@mit.edu>\n---\n git-cvsexportcommit.perl |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\nindex 869c8b5..22c3d2f 100755\n--- a/git-cvsexportcommit.perl\n+++ b/git-cvsexportcommit.perl\n@@ -129,7 +129,7 @@ my $context = $opt_p ? '' : '-C1';\n print \"Checking if patch will apply\\n\";\n \n my @stat;\n-open APPLY, \"GIT_DIR= git-apply $context --binary --summary --numstat<.cvsexportcommit.diff|\" || die \"cannot patch\";\n+open APPLY, \"GIT_DIR= git-apply $context --summary --numstat<.cvsexportcommit.diff|\" || die \"cannot patch\";\n @stat=<APPLY>;\n close APPLY || die \"Cannot patch\";\n my (@bfiles,@files,@afiles,@dfiles);\n@@ -215,7 +215,7 @@ if ($dirty) {\n }\n \n print \"Applying\\n\";\n-`GIT_DIR= git-apply $context --binary --summary --numstat --apply <.cvsexportcommit.diff` || die \"cannot patch\";\n+`GIT_DIR= git-apply $context --summary --numstat --apply <.cvsexportcommit.diff` || die \"cannot patch\";\n \n print \"Patch applied successfully. Adding new files and directories to CVS\\n\";\n my $dirtypatch = 0;\n-- \n1.5.3.4.207.g6d7480-dirty\n"},{"id":"56029","messageId":"Pine.LNX.4.64.0710161404220.25221@racer.site","threadId":"10312","inReplyTo":"1192522094-4988-3-git-send-email-mfwitten@mit.edu","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-16T13:04:34Z","receivedAt":"2007-10-16T13:04:34Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\ndoes --binary hurt?\n\nCiao,\nDscho\n"},{"id":"56062","messageId":"19B03C18-6BBD-4F67-93DC-37B422445C82@mit.edu","threadId":"10312","inReplyTo":"Pine.LNX.4.64.0710161404220.25221@racer.site","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-16T15:27:39Z","receivedAt":"2007-10-16T15:27:39Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"\nOn 16 Oct 2007, at 9:04:34 AM, Johannes Schindelin wrote:\n\n> Hi,\n>\n> does --binary hurt?\n\nIt's a no op according to the documentation.\n\nIn my experience, the healthier the trees are,\nthe healthier the forest is.\n\nMichael Witten\n"},{"id":"56127","messageId":"200710162320.14917.robin.rosenberg.lists@dewire.com","threadId":"10312","inReplyTo":"19B03C18-6BBD-4F67-93DC-37B422445C82@mit.edu","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2007-10-16T21:20:14Z","receivedAt":"2007-10-16T21:20:14Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"tisdag 16 oktober 2007 skrev Michael Witten:\n> \n> On 16 Oct 2007, at 9:04:34 AM, Johannes Schindelin wrote:\n> \n> > Hi,\n> >\n> > does --binary hurt?\n> \n> It's a no op according to the documentation.\n> \n> In my experience, the healthier the trees are,\n> the healthier the forest is.\n> \n> Michael Witten\n\nSo all this series does is... making it harder to follow the history?\n\nAck for removing the --binary, the rest is just noise, and the remove tempdir\npatch should be attributed to Johannes since he wrote the patch (ack to that one\ntoo, which he wrote and submitted exactly two minutes ahead of me, just enough\nfor me not to submit it.).\n\n-- robin\n \n"},{"id":"56133","messageId":"561D7B44-9EDE-447B-A751-BE6E3A3AD9CC@mit.edu","threadId":"10312","inReplyTo":"200710162320.14917.robin.rosenberg.lists@dewire.com","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-16T22:13:44Z","receivedAt":"2007-10-16T22:13:44Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"\nOn 16 Oct 2007, at 5:20:14 PM, Robin Rosenberg wrote:\n\n> So all this series does is... making it harder to follow the history?\n\nIf you follow the history solely on patches.\n\n\n> Ack for removing the --binary, the rest is just noise\n\nI think fixing the tabs is more important than removing --binary.\n\nIt's clear the the entropy of tabulation increases over time;\nthe tab patch acts as a buffer to reconstruct a clean signal.\n\nMichael Witten\n"},{"id":"56141","messageId":"Pine.LNX.4.64.0710162348260.25221@racer.site","threadId":"10312","inReplyTo":"561D7B44-9EDE-447B-A751-BE6E3A3AD9CC@mit.edu","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-16T22:49:17Z","receivedAt":"2007-10-16T22:49:17Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 16 Oct 2007, Michael Witten wrote:\n\n> On 16 Oct 2007, at 5:20:14 PM, Robin Rosenberg wrote:\n> \n> > So all this series does is... making it harder to follow the history?\n> \n> If you follow the history solely on patches.\n> \n> \n> > Ack for removing the --binary, the rest is just noise\n> \n> I think fixing the tabs is more important than removing --binary.\n> \n> It's clear the the entropy of tabulation increases over time;\n> the tab patch acts as a buffer to reconstruct a clean signal.\n\nGit.  The most advanced TCM - Tab Code Manager.  It's not about source, \nit's about tabs.\n\n;-)\n\nCiao,\nDscho\n"},{"id":"56146","messageId":"26CC90F6-94D1-448E-ACF5-9D6CBAD196EF@MIT.EDU","threadId":"10312","inReplyTo":"Pine.LNX.4.64.0710162348260.25221@racer.site","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-16T23:22:35Z","receivedAt":"2007-10-16T23:22:35Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"\nOn 16 Oct 2007, at 6:49:17 PM, Johannes Schindelin wrote:\n\n>> I think fixing the tabs is more important than removing --binary.\n>>\n>> It's clear the the entropy of tabulation increases over time;\n>> the tab patch acts as a buffer to reconstruct a clean signal.\n>\n> Git.  The most advanced TCM - Tab Code Manager.  It's not about  \n> source,\n> it's about tabs.\n>\n> ;-)\n\nI don't know whether to laugh or be miffed.\n\nI think I'll choose to laugh. ;-D\n"},{"id":"56168","messageId":"20071017011148.GL13801@spearce.org","threadId":"10312","inReplyTo":"561D7B44-9EDE-447B-A751-BE6E3A3AD9CC@mit.edu","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-10-17T01:11:48Z","receivedAt":"2007-10-17T01:11:48Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Michael Witten <mfwitten@MIT.EDU> wrote:\n> On 16 Oct 2007, at 5:20:14 PM, Robin Rosenberg wrote:\n> \n> >So all this series does is... making it harder to follow the history?\n> \n> If you follow the history solely on patches.\n\n`git-blame -w` can probably punch through the indentation change\njust fine to find the older history.  But it does make `git log -p`\ndamn ugly to read at this point in history.  And if you forget the\n-w to git-blame, well, then you are really in for some fun for a\nfew minutes.  Lets not mention pickaxe noticing strings removed+added\nin this patch either.\n\n> >Ack for removing the --binary, the rest is just noise\n> \n> I think fixing the tabs is more important than removing --binary.\n> \n> It's clear the the entropy of tabulation increases over time;\n> the tab patch acts as a buffer to reconstruct a clean signal.\n\nSorry, but I have to say I agree with Robin here.  The tab patch\nis large, ugly, and provides relatively little value in comparsion.\n\nThe first rule of git development typically is \"any change is bad\".\nBecause anything that is already written can be assumed to already\nbe tested and in use by someone.  Breaking that is bad, as then\nthey have a bad experience with git.\n\nThere needs to be a really good reason behind a change, like the\nexisting code is already not functioning according to its documented\nbehavior due to a corner case input.  Such things should be changed.\n\nI'm not going to apply the indentation change patch to my tree.\nYou can try to resubmit it through Junio after he's back online\nand accepting patches.\n\n-- \nShawn.\n"},{"id":"56171","messageId":"862396DD-A3EA-4850-8AE8-9E765C7FF0F2@MIT.EDU","threadId":"10312","inReplyTo":"20071017011148.GL13801@spearce.org","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Michael Witten","fromEmail":"mfwitten@mit.edu","sentAt":"2007-10-17T01:34:24Z","receivedAt":"2007-10-17T01:34:24Z","isPatch":true,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"\nOn 16 Oct 2007, at 9:11:48 PM, Shawn O. Pearce wrote:\n\n> Sorry, but I have to say I agree with Robin here.  The tab patch\n> is large, ugly, and provides relatively little value in comparsion.\n>\n> The first rule of git development typically is \"any change is bad\".\n> Because anything that is already written can be assumed to already\n> be tested and in use by someone.  Breaking that is bad, as then\n> they have a bad experience with git.\n\nOK. I understand.\n\nThis was really preparation for a more substantial addition\nthat I hope to make.\n\nI'll just have to change one line at a time with every substantial\npatch!\n\nmfwitten\n"},{"id":"56187","messageId":"20071017022527.GQ13801@spearce.org","threadId":"10312","inReplyTo":"1192522094-4988-2-git-send-email-mfwitten@mit.edu","subject":"Re: [PATCH 2/3] git-cvsexportcommit.perl tmpdir removed","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-10-17T02:25:27Z","receivedAt":"2007-10-17T02:25:27Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Michael Witten <mfwitten@mit.edu> wrote:\n> Signed-off-by: Michael Witten <mfwitten@mit.edu>\n> ---\n>     This is perhaps a duplicate of another patch sent in,\n>     but it applies to the tabified version.\n\nYea, I don't know if you know this but I do already have this in my\nmaster branch.  Same change but it came from Johannes Schindelin.\nI just happened to come across his patch first in my inbox last\nnight when I was processing through what I could.\n     \n-- \nShawn.\n"},{"id":"56706","messageId":"200710201559.53033.robin.rosenberg.lists@dewire.com","threadId":"10312","inReplyTo":"862396DD-A3EA-4850-8AE8-9E765C7FF0F2@MIT.EDU","subject":"Re: [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2007-10-20T13:59:52Z","receivedAt":"2007-10-20T13:59:52Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"onsdag 17 oktober 2007 skrev Michael Witten:\n> \n> On 16 Oct 2007, at 9:11:48 PM, Shawn O. Pearce wrote:\n> \n> > Sorry, but I have to say I agree with Robin here.  The tab patch\n> > is large, ugly, and provides relatively little value in comparsion.\n> >\n> > The first rule of git development typically is \"any change is bad\".\n> > Because anything that is already written can be assumed to already\n> > be tested and in use by someone.  Breaking that is bad, as then\n> > they have a bad experience with git.\n> \n> OK. I understand.\n> \n> This was really preparation for a more substantial addition\n> that I hope to make.\n\nThat might warrant fixing the tabs, *then*. It is nice to know that this \ndebate did not scare you awya from submitting patches. \n\n> I'll just have to change one line at a time with every substantial\n> patch!\n\nExactly :)\nI wrote some more in a commet on the On tabs and spaces thread.\n\n-- robin\n"}]}