Re: GCC Git mirror no longer updating
From: Eric Wong <hidden>
Date: 2016-06-15 22:47:14
Daniel Berlin [off-list ref] wrote:
On Wed, Aug 12, 2009 at 11:37 PM, Eric Wong[off-list ref] wrote:quoted
Bernie Innocenti [off-list ref] wrote:quoted
El Wed, 12-08-2009 a las 09:45 -0400, Jason Merrill escribió:quoted
On 08/12/2009 06:56 AM, Bernie Innocenti wrote:quoted
The git repository format should support concurrent access, but perhaps it only applies to git-receive-pack, not fancy operations such as repacking.The git repository format, yes, but maybe not the stuff in .git/svn. It seems like a temporary index file was referring to an object that got garbage collected away. Or maybe the index file was left over from the initial import, and not there due to a collision; there don't seem to be index files there normally.git-svn might be keeping extra information in files that the other git tools don't know about. This would explain why some objects looked like orphans and were thus culled. [cc'ing the git list to catch the attention of the git-svn maintainer(s)].Hi, As far as I can remember, no version of git svn has ever relied on orphanable objects. Of course there are unavoidable race conditions that happen while git svn is running. It is never safe to run repack concurrently while git svn is running (I wouldn't repack/gc simultaneously with _any_ write activity on the repo).Sounds like you guys need a write lock then for certain operations. How do you square this with the auto-repacking the repository does (by default i thought it runs git gc every so often). We have no control over people pushing branches back at the repo, it may be happening when git-svn is running
Actually, I think the prune operation in git gc is the only potentially unsafe part (and not repack). Double-checking with pruning during gc, it seems to only expire things older than two weeks by default (when used with gc). So I think git svn is safe in the face of repack/gc after all. Manually running git prune without the --expire argument isn't safe, but we don't recommend that anyways.
Where does it say anything about this in the docs so that people know this?
Junio: can you confirm my observations above? I think everything is safe by default as-is. Thanks
quoted
git svn itself can/will run "git gc" in-between revisions if needed. You can safely repack manually whenever git svn is not running.
-- Eric Wong