Support stashing of conflicting data during clone (#44)

pull/57/head
Tim Byrne 7 years ago
parent 02107c35d9
commit e2d8742a40
No known key found for this signature in database
GPG Key ID: 6CBE24C2FD8CF76E

27
yadm

@ -198,20 +198,39 @@ function clone() {
} }
debug "Doing an initial merge of origin/master" debug "Doing an initial merge of origin/master"
"$GIT_PROGRAM" merge origin/master || { "$GIT_PROGRAM" merge origin/master || {
debug "Merge failed, doing a reset." debug "Merge failed, doing a reset and stashing conflicts."
"$GIT_PROGRAM" reset origin/master "$GIT_PROGRAM" reset origin/master
cat <<EOF if cd "$YADM_WORK"; then # necessary because of a bug in Git
"$GIT_PROGRAM" -c user.name='yadm clone' -c user.email='yadm' stash save Conflicts preserved from yadm clone command 2>&1
cat <<EOF
**NOTE**
Merging origin/master failed.
As a result, yadm did 'reset origin/master', and then
stashed the conflicting data.
This likely happened because you had files in \$HOME
which conflicted with files tracked by origin/master.
You can review the stashed conflicts with the command
'yadm stash show -p'. If you want to restore the stashed
data, you can run 'yadm stash apply' or 'yadm stash pop'
and then handle the conflicts in another way.
EOF
else
cat <<EOF
**NOTE** **NOTE**
Merging origin/master failed. Merging origin/master failed.
yadm did 'reset origin/master' instead. yadm did 'reset origin/master' instead.
This likely happened because you had files in your yadm did not stash these conflicts beacuse it was unable
work-tree, which conflict files tracked by origin/master to change to the $YADM_WORK directory.
Please review and resolve any differences appropriately Please review and resolve any differences appropriately
If you know what you're doing, and want to overwrite the If you know what you're doing, and want to overwrite the
tracked files, consider 'yadm reset --hard origin/master' tracked files, consider 'yadm reset --hard origin/master'
EOF EOF
fi
} }
CHANGES_POSSIBLE=1 CHANGES_POSSIBLE=1

Loading…
Cancel
Save