Re: Config spec for git
- From
Martin von Zweigbergk <martinvonz@gmail.com>
- Date
- Nov 22, 2021, 18:19 UTC
- Message-ID
- <CANiSa6ieZrsjQD0+5dCMQCyCZzEVeLpQij8AOFS1R4RYGqbf7g@mail.gmail.com>
- In-Reply-To
- <37ef900a-d9bf-1941-75eb-ea8556e2ba8c@iee.email>
On Wed, Nov 17, 2021 at 8:38 AM Philip Oakley <philipoakley@iee.email> wrote:
Show 17 quoted lines
> > It feels like your config specs are like feature branches, but that what > is missing (from Git, relative to the config spec) is a merge strategy > that can define which particular files/folders are merged at the one > time, rather than the current 'all files' being merged. This desire has > come up a few times when large (corporate?) projects need to merge > large independent feature branches that will need different specialists > to handle different groups of files (i.e. partial merges, e.g. [1]), but > that hasn't been implemented (yet) as it would need someone to think it > through and work on it. > -- > Philip > [1] > https://lore.kernel.org/git/BY5PR19MB3400EB9AD87DFE612AFD5CC390810@BY5PR19MB3400.namprd19.prod.outlook.com/ > > Collaborative conflict resolution feature request >
FWIW, I've spent a lot of time thinking about this and implementing it in https://github.com/martinvonz/jj. Being able to represent a conflicted file state has a lot of benefits, of which collaborative conflict resolution is among the smaller ones (allowing automatic rebase every time a commit is rewritten is much more useful, IMO). I need to document the design but you can find an old version of it (from before I rewrote the README to target users) is at [1]. The design can of course be copied to Git.
[1] https://github.com/martinvonz/jj/blob/2879d817dd1021f8dc2ea5e42000c1d5d50e4fc7/README.md#commits-can-contain-conflicts