design/assistant/disaster recoverygit-annexhttp://git-annex.branchable.com/design/assistant/disaster_recovery/git-annexikiwiki2013-11-27T22:47:37Zcomment 1http://git-annex.branchable.com/design/assistant/disaster_recovery/comment_1_955dc807196863da23aa8dbd15e04364/Mantas2013-11-27T22:47:37Z2013-10-19T15:50:47Z
<p>The restriction on fetching over the Git protocol is, partly, for security reasons – e.g. if one accidentally pushes a commit with private data, and then <code>push --force</code>'s a cleaned-up version, Git needs to prevent anyone from downloading the old commit by just giving its SHA1 (e.g. obtained from an IRC/email push notification). So it restricts fetching to the tips of any ref. (I've been told that it could check if the given object is merely <em>reachable</em> from any ref, but it doesn't do so for performance reasons.)</p>
<p>git 1.8 has a minor way to relax this requirement – it allows giving a SHA1 to <code>git fetch</code> (although I think the protocol already worked this way), and it allows refs to be hidden server-side but still remain fetchable, so in theory there could be a (hidden) ref for every object, for easy fetching...</p>