Re: Bug in Git-Gui - Creates corrupt patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux