builtin-reset: do not call "ls-files --unmerged"
Since reset is a builtin now, it can use the full power of libgit.a and check for unmerged entries itself. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
fe61935007
commit
cdf4a751fa
@ -46,26 +46,14 @@ static inline int is_merge(void)
|
|||||||
|
|
||||||
static int unmerged_files(void)
|
static int unmerged_files(void)
|
||||||
{
|
{
|
||||||
char b;
|
int i;
|
||||||
ssize_t len;
|
read_cache();
|
||||||
struct child_process cmd;
|
for (i = 0; i < active_nr; i++) {
|
||||||
const char *argv_ls_files[] = {"ls-files", "--unmerged", NULL};
|
struct cache_entry *ce = active_cache[i];
|
||||||
|
if (ce_stage(ce))
|
||||||
memset(&cmd, 0, sizeof(cmd));
|
return 1;
|
||||||
cmd.argv = argv_ls_files;
|
}
|
||||||
cmd.git_cmd = 1;
|
return 0;
|
||||||
cmd.out = -1;
|
|
||||||
|
|
||||||
if (start_command(&cmd))
|
|
||||||
die("Could not run sub-command: git ls-files");
|
|
||||||
|
|
||||||
len = xread(cmd.out, &b, 1);
|
|
||||||
if (len < 0)
|
|
||||||
die("Could not read output from git ls-files: %s",
|
|
||||||
strerror(errno));
|
|
||||||
finish_command(&cmd);
|
|
||||||
|
|
||||||
return len;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int reset_index_file(const unsigned char *sha1, int is_hard_reset)
|
static int reset_index_file(const unsigned char *sha1, int is_hard_reset)
|
||||||
|
@ -59,6 +59,15 @@ test_expect_success 'giving a non existing revision should fail' '
|
|||||||
check_changes 3ec39651e7f44ea531a5de18a9fa791c0fd370fc
|
check_changes 3ec39651e7f44ea531a5de18a9fa791c0fd370fc
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'reset --soft with unmerged index should fail' '
|
||||||
|
touch .git/MERGE_HEAD &&
|
||||||
|
echo "100644 44c5b5884550c17758737edcced463447b91d42b 1 un" |
|
||||||
|
git update-index --index-info &&
|
||||||
|
! git reset --soft HEAD &&
|
||||||
|
rm .git/MERGE_HEAD &&
|
||||||
|
git rm --cached -- un
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'giving paths with options different than --mixed should fail' '
|
'giving paths with options different than --mixed should fail' '
|
||||||
! git reset --soft -- first &&
|
! git reset --soft -- first &&
|
||||||
|
Loading…
Reference in New Issue
Block a user