From: Junio C Hamano <junkio@cox.net>
To: Jon Loeliger <jdl@freescale.com>
Cc: git@vger.kernel.org
Subject: Re: Expected Behavior?
Date: Sun, 06 Nov 2005 17:38:32 -0800 [thread overview]
Message-ID: <7vy841utif.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <E1EYsny-0004hq-IW@jdl.com> (Jon Loeliger's message of "Sun, 06 Nov 2005 16:16:02 -0600")
Jon Loeliger <jdl@freescale.com> writes:
> # Untracked files:
> # (use "git add" to add to commit)
> #
> # file3
>
> Why is file3 considered untracked and needing to be added?
> It was present in both "dev" and "master" branches before
> the merge. It doesn't end up with "<<< one === other >>>"
> style diffs either.
It is because Untracked uses different program than git-diff-*
and, it mishandles unmerged paths. Let me see...
Yup, it uses "git-ls-files --others", which considers that
unmerged paths do not "exist" in the index. This is wrong.
The attached is a patch to fix ls-files.
I also think that file3 should not appear in "Updated but not
checked in (will commit)" list -- we are _not_ going to commit
unmerged paths until you tell git what you want to do with
them. The patch in the next message fixes it.
-- >8 -- cut here -- >8 --
Subject: ls-files: --others should not say unmerged paths are unknown.
Jon Loeliger noticed that an unmerged path appears as
"Untracked" in git-status output, even though we show the same
path as updated/changed. Since --others means "we have not told
git about that path", we should not show unmerged paths --
obviously, git knows about them; it just does not know what we
want to do about them yet.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
ls-files.c | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)
applies-to: f571975209b0bc38ca099684f9731efe4163b396
fcbc3083e37f3c025d85d7b2c8a1c53d07a81fac
diff --git a/ls-files.c b/ls-files.c
index d9c8b21..f7653e7 100644
--- a/ls-files.c
+++ b/ls-files.c
@@ -348,6 +348,29 @@ static void show_dir_entry(const char *t
putchar(line_terminator);
}
+static void show_other_files(void)
+{
+ int i;
+ for (i = 0; i < nr_dir; i++) {
+ /* We should not have a matching entry, but we
+ * may have an unmerged entry for this path.
+ */
+ struct nond_on_fs *ent = dir[i];
+ int pos = cache_name_pos(ent->name, ent->len);
+ struct cache_entry *ce;
+ if (0 <= pos)
+ die("bug in show-other-files");
+ pos = -pos - 1;
+ if (pos < active_nr) {
+ ce = active_cache[pos];
+ if (ce_namelen(ce) == ent->len &&
+ !memcmp(ce->name, ent->name, ent->len))
+ continue; /* Yup, this one exists unmerged */
+ }
+ show_dir_entry(tag_other, ent);
+ }
+}
+
static void show_killed_files(void)
{
int i;
@@ -438,8 +461,7 @@ static void show_files(void)
read_directory(path, base, baselen);
qsort(dir, nr_dir, sizeof(struct nond_on_fs *), cmp_name);
if (show_others)
- for (i = 0; i < nr_dir; i++)
- show_dir_entry(tag_other, dir[i]);
+ show_other_files();
if (show_killed)
show_killed_files();
}
---
0.99.9.GIT
next prev parent reply other threads:[~2005-11-07 1:38 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-06 22:16 Expected Behavior? Jon Loeliger
2005-11-07 1:38 ` Junio C Hamano [this message]
2005-11-07 2:01 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2005-11-08 3:07 Jon Loeliger
2005-11-08 3:43 Jon Loeliger
2005-11-08 6:00 ` Junio C Hamano
2005-11-08 9:56 ` Petr Baudis
2005-11-08 21:03 ` Fredrik Kuivinen
2005-11-08 21:41 ` Junio C Hamano
2005-11-08 22:53 ` Fredrik Kuivinen
2005-11-09 5:50 ` Junio C Hamano
2005-11-09 8:19 ` Fredrik Kuivinen
2005-11-10 20:34 ` Petr Baudis
2005-11-10 22:52 ` Junio C Hamano
2005-11-10 23:22 ` Petr Baudis
2005-11-09 11:24 ` Petr Baudis
2005-11-09 23:04 ` Martin Langhoff
2005-11-09 23:12 ` Petr Baudis
2005-11-09 23:43 ` Martin Langhoff
2005-11-09 23:49 ` Petr Baudis
2005-11-10 2:47 ` Martin Langhoff
2005-11-10 19:34 ` Petr Baudis
2005-11-10 19:54 ` Martin Langhoff
2005-11-10 20:10 ` Petr Baudis
2005-11-09 23:36 ` Junio C Hamano
2005-11-09 23:42 ` Petr Baudis
2005-11-10 0:03 ` Junio C Hamano
2005-11-09 2:58 Jon Loeliger
2005-11-09 6:28 ` Junio C Hamano
2005-11-09 13:38 Jon Loeliger
2005-11-09 20:38 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vy841utif.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=jdl@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).