https://github.com/git/git
Revision b338e9f668737e08201c990450b8c3d744f63162 authored by Elijah Newren on 12 May 2021, 17:28:16 UTC, committed by Junio C Hamano on 12 May 2021, 23:45:03 UTC
ls-files --ignored can be used together with either --others or
--cached.  After being perplexed for a bit and digging in to the code, I
assumed that ls-files -i was just broken and not printing anything and
I had a nice patch ready to submit when I finally realized that -i can be
used with --cached to find tracked ignores.

While that was a mistake on my part, and a careful reading of the
documentation could have made this more clear, I suspect this is an
error others are likely to make as well.  In fact, of two uses in our
testsuite, I believe one of the two did make this error.  In t1306.13,
there are NO tracked files, and all the excludes built up and used in
that test and in previous tests thus have to be about untracked files.
However, since they were looking for an empty result, the mistake went
unnoticed as their erroneous command also just happened to give an empty
answer.

-i will most the time be used with -o, which would suggest we could just
make -i imply -o in the absence of either a -o or -c, but that would be
a backward incompatible break.  Instead, let's just flag -i without
either a -o or -c as an error, and update the two relevant testcases to
specify their intent.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 7fe1ffd
Raw File
Tip revision: b338e9f668737e08201c990450b8c3d744f63162 authored by Elijah Newren on 12 May 2021, 17:28:16 UTC
ls-files: error out on -i unless -o or -c are specified
Tip revision: b338e9f
resolve-undo.h
#ifndef RESOLVE_UNDO_H
#define RESOLVE_UNDO_H

#include "cache.h"

struct resolve_undo_info {
	unsigned int mode[3];
	struct object_id oid[3];
};

void record_resolve_undo(struct index_state *, struct cache_entry *);
void resolve_undo_write(struct strbuf *, struct string_list *);
struct string_list *resolve_undo_read(const char *, unsigned long);
void resolve_undo_clear_index(struct index_state *);
int unmerge_index_entry_at(struct index_state *, int);
void unmerge_index(struct index_state *, const struct pathspec *);
void unmerge_marked_index(struct index_state *);

#endif
back to top