threads / discuss / 53452

stash pop results in conflict after stash --keep-index with the same file in index and working directory

Subject: stash pop results in conflict after stash --keep-index with the same file in index and working directory

## tl;dr

One message between May 12, 2020 and May 12, 2020.

replies: 0people: 1as markdown or json

Jakub Dąbek· May 12, 2020, 11:45 UTC · lore

I was trying to write a pre-commit hook for testing using stash to keep irrelevant changes, but pop couldn't apply changes automatically when the same file with different changes was in index and working directory at the same time.

Reproduction:
  mkdir git-stash-test && cd git-stash-test
  git init
  echo foo > foo.txt
  git add . && git commit -m 'init'
  echo foo2 > foo.txt
  git add foo.txt
  echo foo3 > foo.txt
  git status # (*)
  git stash push --keep-index
  git status
  # do testing
  git stash pop
Expected result: same state as before push (*); actual result:
  Auto-merging foo.txt
  CONFLICT (content): Merge conflict in foo.txt
  The stash entry is kept in case you need it again.
--index option doesn't help when used with pop.

My assumption is that pop should be the reverse of push when nothing has changed in between, but I don't know if this is a bug or unexpected behaviour. (git version 2.26.2)

← back to recent threads