Shawn, I've added these lines to '/usr/share/git-gui/lib/diff.tcl' in the 'catch' block of apply_line(): ---------------------------------------------- puts -nonewline stdout $p puts -nonewline stdout $current_diff_header puts -nonewline stdout $patch ---------------------------------------------- This produces the following patch that gets sent to git-apply: --------------------------------------------- file7diff --git a/file b/file --- a/file +++ b/file @@ -6,17 +6,16 @@ echo "line 2"; echo "line 3"; echo "line 4"; echo "line 5"; } public function funcBCD() { echo "line 1-1"; echo "line 2-1"; echo "line 3-1"; echo "line 4-1"; echo "line 5-1"; - } } ?> \ No newline at end of file --------------------------------------------- Here's the base64 encoded version: ZmlsZTdkaWZmIC0tZ2l0IGEvZmlsZSBiL2ZpbGUKLS0tIGEvZmlsZQorKysgYi9maWxlCkBAIC02 LDE3ICs2LDE2IEBACiAJCWVjaG8gImxpbmUgMiI7CiAJCWVjaG8gImxpbmUgMyI7CiAJCWVjaG8g ImxpbmUgNCI7CiAJCWVjaG8gImxpbmUgNSI7CiAJfQogCQogCXB1YmxpYyBmdW5jdGlvbiBmdW5j QkNEKCkgewogCQllY2hvICJsaW5lIDEtMSI7CiAJCWVjaG8gImxpbmUgMi0xIjsKIAkJZWNobyAi bGluZSAzLTEiOwogCQllY2hvICJsaW5lIDQtMSI7CiAJCWVjaG8gImxpbmUgNS0xIjsKLQl9CiB9 CiAKID8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo= > From: <4jxDQ6FQee2H@xxxxxxxxxx> > To: spearce@xxxxxxxxxxx > Cc: git@xxxxxxxxxxxxxxx > Subject: Bug in Git-Gui - Creates corrupt patch > Date: Wed, 25 Feb 2009 09:03:22 -0600 > Reply-To: 4jxDQ6FQee2H@xxxxxxxxxx > Sender: git-owner@xxxxxxxxxxxxxxx > X-Mailer: Claws Mail 3.4.0 (GTK+ 2.12.11; i686-pc-linux-gnu) > > Hi Shawn, > > I have stumbled upon a bug in Git-GUi and am providing reproduction > steps: > > > > 1. Commit this file into a new git repository: > > ----------------------------- > <?php > > class myclass { > public function funcAbc() { > echo "line 1"; > echo "line 2"; > echo "line 3"; > echo "line 4"; > echo "line 5"; > } > > public function funcBCD() { > echo "line 1-1"; > echo "line 2-1"; > echo "line 3-1"; > echo "line 4-1"; > echo "line 5-1"; > } > } > > ?> > -------------- > > Here is the base64 encoded version: > > PD9waHAKCmNsYXNzIG15Y2xhc3MgewoJcHVibGljIGZ1bmN0aW9uIGZ1bmNBYmMoKSB7CgkJZWNo > byAibGluZSAxIjsKCQllY2hvICJsaW5lIDIiOwoJCWVjaG8gImxpbmUgMyI7CgkJZWNobyAibGlu > ZSA0IjsKCQllY2hvICJsaW5lIDUiOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZnVuY0JDRCgpIHsK > CQllY2hvICJsaW5lIDEtMSI7CgkJZWNobyAibGluZSAyLTEiOwoJCWVjaG8gImxpbmUgMy0xIjsK > CQllY2hvICJsaW5lIDQtMSI7CgkJZWNobyAibGluZSA1LTEiOwoJfQp9Cgo/Pg== > > > > > 2. Now delete the last function in the class. Here's the resulting > file, it is not staged or commited yet. > > ---------------------------- > <?php > > class myclass { > public function funcAbc() { > echo "line 1"; > echo "line 2"; > echo "line 3"; > echo "line 4"; > echo "line 5"; > } > } > > ?> > ---------------------------- > > > Here is the base64 encoded version: > > PD9waHAKCmNsYXNzIG15Y2xhc3MgewoJcHVibGljIGZ1bmN0aW9uIGZ1bmNBYmMoKSB7CgkJZWNo > byAibGluZSAxIjsKCQllY2hvICJsaW5lIDIiOwoJCWVjaG8gImxpbmUgMyI7CgkJZWNobyAibGlu > ZSA0IjsKCQllY2hvICJsaW5lIDUiOwoJfQp9Cgo/Pg== > > > > > 3. Using git-gui, try to stage *only* the last line marked for removal > (should be '- }'). > > I get 'fatal: corrupt patch at line 22'. > > > > > 4. Now try the same task using git-add -p. Start 'git-add -p'. > Enter edit mode (e). Remove all the '-' lines except the last one > (make them ' ') so that only the last '-' will be removed. Save and > exit. > > On my system the patch is committed. > > > > > > I'm running git version 1.6.0.6, 32bit linux, Gentoo OS > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html