We have forks disabled as a general rule. However, something we want to do requires us creating a fork.
If I take the following steps:
Will repository B still be able to automatically sync any changes to A?
(The documentation on 'Disabling Forking' says "commits in the parent are viewable via the fork if the SHA1 hash is known to the user", but I don't know what that means. It sounds suspiciously like syncing won't work, but there's a manual workaround to keep getting updates.)
Hi Graham,
Sorry for the delay. That scenario should be work fine. I've just taken a look at the code to be sure, and the only time we check that forks are enabled is showing the fork button and actually forking, everything else behaves regardless.
Does that put your mind at ease? :)
Charles
PS.
commits in the parent are viewable via the fork if the SHA1 hash is known to the user
So this is Git implementation details bleeding through. Technically Stash uses Git alternates to make forking effecient by sharing the parent objects. Regardless of syncing, if you push a commit to the parent repository after you sync, by definition that commit is now instantly available in _every_ child if you URL hack (and thus bypassing the permissions of the parent repository). I believe/suspect Github have the same behaviour.
Note that has no impact on fetching - only commits that are "reachable" via a ref are available to a Git client.
The nice thing about this is when we do ref sync it's basically "free" from a Stash diskspace perspective - the commits are only stored on disk once in the parent. :)
Make sense?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.