moving non publishing changesets between secret and draft phases and back to secret
Mitchell Elutovich
melutovich at gmail.com
Thu Aug 10 19:05:18 UTC 2023
Anton: I appreciate this.
All: I've highlighted one important point for each method, embedded below.
On Thu, Aug 10, 2023 at 9:02 PM Anton Shestakov <av6 at dwimlabs.net> wrote:
> Secret phase works really well when only one person has access to the
> secrets (:
>
> To clarify, the situation in this thread is that two developers want to
> occasionally share some commits, but only between themselves and not
> with the main development repo. Secret phase is not very convenient in
> this situation (although nothing says it can't be used), because, AFAIU,
> this is what needs to happen every time they want to exchange work:
>
> - someone needs to pick specific secret changesets and make them draft
> in their repo
> - push/pull these changesets
> - turn these changesets back into secret (forcefully), to prevent them
> from being exchanged with the main dev repo
> - make sure the other developer turns them to secret as well
> - everyone now has to be aware that secret changesets may become draft
> on exchange and need to understand what happened
>
> Just to highlight for this scenario, even though we've already discussed,
when the draft changeset is "pushed", the *target *repo that is being
pushed into will need to have off the auto publishing of draft changesets.
[phases]
publish = false
> To elaborate on the last point, if your currently-secret commit exists
> in a different repo that someone else controls, it might become draft or
> public for you after exchange with that repo. If that happens, you have
> to communicate with that other person to see if they wanted this to
> happen to the commit in your repo or not. You can imagine that this is
> not exactly convenient.
>
> So to prevent pushing some of the changesets to the main development
> repo by default, but still being able to push/pull from coworkers
> without too much hassle (demonstrated above), you can e.g. always
> push/pull specific revisions by hand, or set up a different pushrev
> sub-option for a specific path:
>
> [paths]
> main = ...
> main:pushrev = <almost nothing>
> colleague = ...
> colleague:pushrev = <pretty much everything>
>
This would only likely work if the colleague would himself agree to have a
limited main:pushrev
> _______________________________________________
> Evolve-testers mailing list
> Evolve-testers at lists.mercurial-scm.org
> https://lists.mercurial-scm.org/mailman/listinfo/mercurial-evolve-testers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-evolve-testers/attachments/20230810/98f23265/attachment.html>
More information about the Evolve-testers
mailing list