moving non publishing changesets between secret and draft phases and back to secret

Anton Shestakov av6 at dwimlabs.net
Thu Aug 10 18:02:08 UTC 2023


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

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>


More information about the Evolve-testers mailing list