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

[PATCH v3 0/4] Fix locking issues on Windows with `git clone --dissociate`

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 6, 2015, 13:17 UTC
Message-ID
<cover.1444131898.git.johannes.schindelin@gmx.de>
In-Reply-To
<682991036f1e8e974ed8ecd7d20dbcc6fb86c344.1443469464.git.johannes.schindelin@gmx.de>
This is version 3, adding that BUG! message if do_not_close was set.
Max, I still hope that this patch series helps also your use case!
Interdiff below the diffstat.
Johannes Schindelin (4):
  Demonstrate a Windows file locking issue with `git clone --dissociate`
  Consolidate code to close a pack's file descriptor
  Add a function to release all packs
  clone --dissociate: avoid locking pack files
 builtin/clone.c            |  4 +++-
 cache.h                    |  1 +
 sha1_file.c                | 59 +++++++++++++++++++++++++++++-----------------
 t/t5700-clone-reference.sh | 21 +++++++++++++++++
 4 files changed, 62 insertions(+), 23 deletions(-)
diff --git a/sha1_file.c b/sha1_file.c
index fe823fe..ca699d7 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -810,7 +810,10 @@ void close_all_packs(void)
 	struct packed_git *p;
 
 	for (p = packed_git; p; p = p->next)
-		close_pack(p);
+		if (p->do_not_close)
+			die("BUG! Want to close pack marked 'do-not-close'");
+		else
+			close_pack(p);
 }
 
 
-- 
2.6.1.windows.1
Previous: Junio C HamanoNext: Johannes Schindelin
Message 16 of 23 in “clone --dissociate: avoid locking pack files”
  1. clone --dissociate: avoid locking pack filesJohannes Schindelin, Sep 28, 2015
  2. Max KirillovSep 30, 2015
  3. Junio C HamanoSep 30, 2015
  4. Max KirillovOct 1, 2015
  5. Johannes SchindelinOct 5, 2015
  6. 0/4 Fix locking issues on Windows with `git clone --dissociate`Johannes Schindelin, Oct 5, 2015
  7. 1/4 Demonstrate a Windows file locking issue with `git clone --dissociate`Johannes Schindelin, Oct 5, 2015
  8. 2/4 Consolidate code to close a pack's file descriptorJohannes Schindelin, Oct 5, 2015
  9. Junio C HamanoOct 5, 2015
  10. Johannes SchindelinOct 5, 2015
  11. Junio C HamanoOct 5, 2015
  12. Johannes SchindelinOct 6, 2015
  13. 3/4 Add a function to release all packsJohannes Schindelin, Oct 5, 2015
  14. 4/4 clone --dissociate: avoid locking pack filesJohannes Schindelin, Oct 5, 2015
  15. Junio C HamanoOct 5, 2015
  16. 0/4 Fix locking issues on Windows with `git clone --dissociate`Johannes Schindelin, Oct 6, 2015
  17. 1/4 Demonstrate a Windows file locking issue with `git clone --dissociate`Johannes Schindelin, Oct 6, 2015
  18. 2/4 Consolidate code to close a pack's file descriptorJohannes Schindelin, Oct 6, 2015
  19. 3/4 Add a function to release all packsJohannes Schindelin, Oct 6, 2015
  20. Junio C HamanoOct 7, 2015
  21. Johannes SchindelinOct 8, 2015
  22. 4/4 clone --dissociate: avoid locking pack filesJohannes Schindelin, Oct 6, 2015
  23. Max KirillovOct 11, 2015

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.