git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] add -p: skip conflicted paths

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 4, 2012, 18:29 UTC
Message-ID
<7vty0z8i66.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7v398jbjbo.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> Jeff King <peff@peff.net> writes:
>
>> I do still think it would be nicer to pass the information out to the
>> caller instead of just filtering.
>
> Indeed.
>
>> So combining the two patches, we have
>> something like:
>
> Hrm.  I kind of liked the idea of doing this with a single plumbing call
> to diff-files (the entries that come from --raw will be mostly discarded
> except for the ones that are marked with "U"), though.
That is, something like this on top of your patch.
 git-add--interactive.perl |   25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index 28d36f7..28c28b7 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -318,7 +318,9 @@ sub list_modified {
 		}
 	}
 
-	for (run_cmd_pipe(qw(git diff-files --numstat --summary --), @tracked)) {
+	for (run_cmd_pipe(qw(git diff-files --numstat --summary),
+			  ($note_unmerged ? ("--raw") : ()),
+			  "--", @tracked)) {
 		if (($add, $del, $file) =
 		    /^([-\d]+)	([-\d]+)	(.*)/) {
 			$file = unquote_path($file);
@@ -340,26 +342,17 @@ sub list_modified {
 			if ($bin) {
 				$data{$file}{BINARY} = 1;
 			}
-		}
-		elsif (($adddel, $file) =
-		       /^ (create|delete) mode [0-7]+ (.*)$/) {
+		} elsif (/^:[0-7]+ [0-7]+ [0-9a-f]+ [0-9a-f]+ (.)	(.*)$/) {
+			if ($1 eq 'U') {
+				$file = unquote_path($2);
+				$data{$file}{UNMERGED} = 1;
+			}
+		} elsif (($adddel, $file) = /^ (create|delete) mode [0-7]+ (.*)$/) {
 			$file = unquote_path($file);
 			$data{$file}{FILE_ADDDEL} = $adddel;
 		}
 	}
 
-	if ($note_unmerged) {
-		for (run_cmd_pipe(qw(git ls-files -u --), @ARGV)) {
-			chomp $_;
-			if (/^[0-7]+ [0-9a-f]{40} [0-3]	(.*)/) {
-				my $path = unquote_path($1);
-				if (exists($data{$path})) {
-					$data{$path}{UNMERGED} = 1;
-				}
-			}
-		}
-	}
-
 	for (sort keys %data) {
 		my $it = $data{$_};
 
Previous: Junio C HamanoNext: Jeff King
Message 13 of 16 in “add -p: skip conflicted paths”
  1. add -p: skip conflicted pathsErik Faye-Lund, Mar 28, 2012
  2. Junio C HamanoMar 28, 2012
  3. add -p: skip conflicted pathsErik Faye-Lund, Mar 28, 2012
  4. Junio C HamanoMar 28, 2012
  5. Junio C HamanoMar 28, 2012
  6. Junio C HamanoMar 28, 2012
  7. Jeff KingMar 29, 2012
  8. Erik Faye-LundApr 2, 2012
  9. Junio C HamanoApr 2, 2012
  10. Jeff KingApr 4, 2012
  11. Tay Ray ChuanApr 4, 2012
  12. Junio C HamanoApr 4, 2012
  13. Junio C HamanoApr 4, 2012
  14. Jeff KingApr 4, 2012
  15. Junio C HamanoApr 4, 2012
  16. Jeff KingApr 5, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.