From f4308b107242781b5de98804eb68a9657b348c49 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 9 Jun 2014 20:14:52 -0400 Subject: devblog --- debian/changelog | 6 +----- doc/devblog/day_181__tricky_merge.mdwn | 8 ++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 doc/devblog/day_181__tricky_merge.mdwn diff --git a/debian/changelog b/debian/changelog index 64225ea36..4d0b91950 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,11 +3,7 @@ git-annex (5.20140607) UNRELEASED; urgency=medium * Ignore setsid failures. * Avoid leaving behind .tmp files when failing in some cases, including importing files to a disk that is full. - * direct mode: Avoid committing a merge until after the work tree is - updated. This avoids an interrupted merge leaving the work tree out - of sync with the last commit, which could result in the wrong thing - being committed later, and files appearing to get deleted. - (They could be recovered by reverting the bad commit.) + * Avoid bad commits after interrupted direct mode sync (or merge). -- Joey Hess Mon, 09 Jun 2014 14:44:09 -0400 diff --git a/doc/devblog/day_181__tricky_merge.mdwn b/doc/devblog/day_181__tricky_merge.mdwn new file mode 100644 index 000000000..c6bcaf8d4 --- /dev/null +++ b/doc/devblog/day_181__tricky_merge.mdwn @@ -0,0 +1,8 @@ +Spent most of today improving behavior when a sync or merge is +interrupted in direct mode. It was possible for an interrupt at the wrong +time to leave the merge committed, but the work tree not yet updated. And +then the next sync would make a commit that reverted the merged changes! + +To fix this I had to avoid making any merge commit or indeed updating the +index until after the work tree is updated. It looked intractable for a +while; I'm still surprised I eventually succeeded. -- cgit v1.2.3