On Sat, Nov 05, 2016 at 09:50:07PM -0700, Jacob Keller wrote: > On Sat, Nov 5, 2016 at 1:25 PM, Josh Triplett <josh@xxxxxxxxxxxxxxxx> wrote: > > On Sat, Nov 05, 2016 at 09:21:58PM +0100, Christian Couder wrote: > >> On Sat, Nov 5, 2016 at 4:18 PM, Josh Triplett <josh@xxxxxxxxxxxxxxxx> wrote: > >> > On Sat, Nov 05, 2016 at 01:45:27PM +0100, Christian Couder wrote: > >> >> And with what Peff says above it looks like we will need ways > >> >> configure and tweak commit reachability with gitlink/gitref anyway. So > >> >> the point of gitref compared to gitlink would be that they just have a > >> >> different reachability by default. But couldn't that be replaced by a > >> >> default rule saying that when a gitlink is reached "this way or that > >> >> way" then the commit reachability should be enforced, and otherwise it > >> >> should not be? > >> > > >> > Any version of git unaware of that rule, though, would consider objects > >> > only reachable by gitlink as unreachable and delete them, causing data > >> > loss. Likewise for a server not aware of that rule. And a server > >> > unaware of that rule would not supply those objects to a client pulling > >> > such a branch. > >> > >> Yeah, so you would really need an up-to-date server and client to > >> store the git-series data. > >> But anyway if we create a gitref object, you would also need > >> up-to-date servers and clients to make it work. > > > > Agreed, but gitrefs have the advantage of failing safe, rather than > > failing with dataloss. > > > > - Josh Triplett > > Isn't the "failing safe" only true if the client disconnects when a > server doesn't advertise "i understand gitrefs"? So couldn't we, as > part of the rules for reachability advertise a capability that does a > similar thing and fails safe as well? We could, but if we (or one of the many third-party git implementations) miss a case, gitlinks+reachability may appear to work in many cases with dataloss afterward, while gitrefs will fail early and not appear functional.