Re: Bug in Git-Gui - Creates corrupt patch
From: <hidden>
Date: 2016-06-15 22:46:17
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: <redacted>
To: spearce@spearce.org
Cc: git@vger.kernel.org
Subject: Bug in Git-Gui - Creates corrupt patch
Date: Wed, 25 Feb 2009 09:03:22 -0600
Reply-To: 4jxDQ6FQee2H@dyweni.com
Sender: git-owner@vger.kernel.org
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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html