git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 0/5] branch: fix branch operations with multiple working trees

From
Kazuki Yamaguchi <k@rhe.jp>
Date
Mar 25, 2016, 18:28 UTC
Message-ID
<cover.1458927521.git.k@rhe.jp>
In-Reply-To
<1458553816-29091-1-git-send-email-k@rhe.jp>

[1/5] Adds RESOLVE_REF_COMMON_DIR to resolve_ref_unsafe(). The second - fourth patch depend on this. At the same time, this allows us to remove reimplementation of resolve_ref_unsafe() in worktree.c: parse_ref().

[2/5] Adds REF_COMMON_DIR flag to lock_ref_sha1_basic().

[3/5] Adds create_symref_common_dir(). Same as create_symref() except it doesn't consider $GIT_DIR. create_symref_common_dir("HEAD", some) always updates .git/HEAD. The next patch uses this.

[4/5] Fixes the issue of git branch -m. The behavior when one failed has changed from v1: print an error and continue.

  % git branch -m oldname newname
  error: Unable to create '/path/to/.git/worktrees/wt/HEAD.lock': Permission denied
  error: HEAD of working tree /path/to/wt is not updated.
  error: Unable to create '/path/to/.git/worktrees/wt2/HEAD.lock': Permission denied
  error: HEAD of working tree /path/to/wt2 is not updated.
  fatal: Branch renamed to newname, but HEAD is not updated!

[5/5] Fixes an issue of git branch -d, v1 didn't include this. I noticed git branch -d has same issue and this is for it. This patch is unrelated to the above 4 patches, but the cause is same. This can be applied separately.

Kazuki Yamaguchi (5):
  refs: add new flag RESOLVE_REF_COMMON_DIR to resolve_ref_unsafe
  refs: add REF_COMMON_DIR flag
  refs: add create_symref_common_dir as a variation of create_symref
  branch -m: update all per-worktree HEADs
  branch -d: refuse deleting a branch which is currently checked out
 branch.c             |  32 ++++++++++++++++
 branch.h             |   7 ++++
 builtin/branch.c     |  15 ++++----
 refs.h               |  11 ++++++
 refs/files-backend.c |  34 ++++++++++++++---
 t/t3200-branch.sh    |  29 +++++++++++++-
 worktree.c           | 105 ++++++++++++++++-----------------------------------
 7 files changed, 147 insertions(+), 86 deletions(-)
-- 
2.8.0.rc4.21.g05df949
Next: Kazuki Yamaguchi
Message 1 of 17 in “branch: fix branch operations with multiple working trees”
  1. 0/5 branch: fix branch operations with multiple working treesKazuki Yamaguchi, Mar 25, 2016
  2. 1/5 refs: add new flag RESOLVE_REF_COMMON_DIR to resolve_ref_unsafeKazuki Yamaguchi, Mar 25, 2016
  3. 2/5 refs: add REF_COMMON_DIR flagKazuki Yamaguchi, Mar 25, 2016
  4. 3/5 refs: add create_symref_common_dir as a variation of create_symrefKazuki Yamaguchi, Mar 25, 2016
  5. 4/5 branch -m: update all per-worktree HEADsKazuki Yamaguchi, Mar 25, 2016
  6. 5/5 branch -d: refuse deleting a branch which is currently checked outKazuki Yamaguchi, Mar 25, 2016
  7. Junio C HamanoMar 25, 2016
  8. Eric SunshineMar 27, 2016
  9. Kazuki YamaguchiMar 28, 2016
  10. branch -d: refuse deleting a branch which is currently checked outKazuki Yamaguchi, Mar 28, 2016
  11. Eric SunshineMar 28, 2016
  12. Kazuki YamaguchiMar 29, 2016
  13. Eric SunshineMar 29, 2016
  14. branch -d: refuse deleting a branch which is currently checked outKazuki Yamaguchi, Mar 29, 2016
  15. Eric SunshineMar 29, 2016
  16. Junio C HamanoMar 25, 2016
  17. Kazuki YamaguchiMar 27, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.