Arcanist's history.immutable

Kevin Funk kfunk at kde.org
Sun Nov 1 15:37:19 UTC 2015


On Saturday, October 31, 2015 05:26:47 PM Andrew McCann wrote:
> Hi all,
> 
> First, as a new member, it's good to contribute. I've been a user of
> KDevelop for many years. I am now working to get things working well on OSX.
> 
> For develop & kdevplatform repositories Arcanist is currently configured to
> commit all 'feature branch' history when 'arc land' is used. When I used
> the arcanist tool aka 'arc' to commit my most recent diffs it had the
> surprising effect of committing all of the history of the 'feature branch'
> as well.  This was unexpected behaviour to me, as my previous use of
> arcanist has not had this behaviour. I'm of the mind that public history
> should be somewhat clean, with each commit being a logical change (when
> possible).
> 
> Apparently this behaviour is not the default behaviour and was configured
> by adding the "history.immutable" : true configuration to ".arcconfig" in
> the repository root.  This setting is about controlling the arc workflow,
> and specifically how feature branches are landed. You can read more about
> this setting here:
> https://secure.phabricator.com/book/phabricator/article/arcanist_new_project
> /
> 
> This was intentionally configured, so clearly someone gave it some
> thought.  I just wondered what the ongoing thoughts are on the use of 'arc
> land'   With the immutable history setting, 'arc land' will make at least 2
> commits for every 'arc land'. (one for the feature diff, one for the
> merge).

I was copying the .arcconfig from another repository to kdevplatform/kdevelop/
etc.. To be honest, at that time I thought 'history.immutable' was referring 
to history-rewriting in Git, so I thought it's fine.

But after reading above link I'd lean towards removing that line, i.e. making 
it 'false'. I dislike having merge-commits for every single change we do via 
'arc land'. It's also more like it has been in reviewboard times.

So in my opinion: Let's remove it.

PS: All the other repos in KDE seem to have 'history.immutable' set to true as 
well. Not sure if it's intentional or just c&p'ed around.

Maybe Aleix  can ask around (in his office?) what the other opinions of KDE 
people are? 

Cheers,
Kevin

> To be clear, I'm not talking about rewriting history of public repository.
> Just how the commit history that is generated when working on a given
> 'diff' in the arcanist workflow. Often there are multiple commits given the
> code review process.
> 
> My personal preference is to keep public history clean, and have just one
> commit in the public repository per landed "differential".  One can
> accomplish this now by manually making commits. However, this largely
> undoes some of the convenience of arcanist.
> 
> Seems the choices are:
>    1) Don't use arcanist to land changes, manually squash change sets /
> feature branches, and keep a 'clean' public history.
>    2) Use arcanist, accept multiple-commits per "land"
>    3) Use arcanist, configure to mutate history for 'land"
> 
> 
> I am happy to work with any option.
> 
> -Andrew

-- 
Kevin Funk | kfunk at kde.org | http://kfunk.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20151101/c52b6922/attachment.sig>


More information about the KDevelop-devel mailing list