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

Re: [BUG] git repack fails if .git/objects/pack is on a separate partition

From
Marat Radchenko <marat@slonopotamus.org>
Date
Oct 19, 2010, 07:40 UTC
Message-ID
<1287474040065-5649864.post@n2.nabble.com>
In-Reply-To
<1287473363910-5649843.post@n2.nabble.com>
Testcase:

# tell it where is other partition OTHER_PARTITION=/path/to/other/partition/

# init repo mkdir foo && cd foo && git init

# put some stuff and run gc to create packfile cp /etc/fstab . && git add fstab && git commit -m "initial" && git gc

# move pack dir to other partition and install symlink mv .git/objects/pack $OTHER_PARTITION && ln -s $OTHER_PARTITION/pack .git/objects/pack

# run gc (it fails) strace -f git gc 2>&1 | grep rename

[pid 3792] rename(".git/packed-refs.lock", ".git/packed-refs") = 0 [pid 3793] rename(".git/logs/refs/heads/master.lock", ".git/logs/refs/heads/master") = 0 [pid 3793] rename(".git/logs/HEAD.lock", ".git/logs/HEAD") = 0 [pid 3808] rename(".git/objects/pack/tmp_pack_8ZhS92", "/home/marat/foo/.git/objects/.tmp-3795-pack-da13ceb9f70c2762595a7a2932411db339bdab46.pack") = -1 EXDEV (Invalid cross-device link) [pid 3808] write(2, "fatal: unable to rename temporar"..., 71fatal: unable to rename temporary pack file: Invalid cross-device link

So you see, it tries to move packfile from .git/objects/pack to .git/objects
-- 
View this message in context: http://git.661346.n2.nabble.com/BUG-git-repack-fails-if-git-objects-pack-is-on-a-separate-partition-tp5649732p5649864.html
Sent from the git mailing list archive at Nabble.com.
Previous: Marat RadchenkoNext: Thomas Rast
Message 4 of 7 in “[BUG] git repack fails if .git/objects/pack is on a separate partition”
  1. Marat RadchenkoOct 19, 2010
  2. Thomas RastOct 19, 2010
  3. Marat RadchenkoOct 19, 2010
  4. Marat RadchenkoOct 19, 2010
  5. repack: place temporary packs under .git/objects/pack/Thomas Rast, Oct 19, 2010
  6. Marat RadchenkoOct 19, 2010
  7. Junio C HamanoOct 19, 2010

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.