Thread (7 messages) flat view 7 messages, 3 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help