<div dir="ltr">So, this is less of an issue than I thought.<div><br></div><div>It turns out I had a bit of a misunderstanding of this feature. I'll share in the case others did as well.</div><div><br></div><div>The history.immutable setting only controls the default behaviour of 'arc land'.  I was under the impression earlier that the setting was absolute.</div><div><br></div><div>If you are landing a feature branch, and wish to avoid the merge commit and commit history on that branch, use 'arc land --squash' to create one single commit.</div><div><br></div><div>If you're in a situation like Andreas mentioned where there is value in the history, you can (currently) just use the default behaviour. If you prefer to be explicit and not depend on the default setting, I believe you can use 'arc land --merge'</div><div><br></div><div>-Andrew</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 1, 2015 at 7:37 AM, Kevin Funk <span dir="ltr"><<a href="mailto:kfunk@kde.org" target="_blank">kfunk@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Saturday, October 31, 2015 05:26:47 PM Andrew McCann wrote:<br>
> Hi all,<br>
><br>
> First, as a new member, it's good to contribute. I've been a user of<br>
> KDevelop for many years. I am now working to get things working well on OSX.<br>
><br>
> For develop & kdevplatform repositories Arcanist is currently configured to<br>
> commit all 'feature branch' history when 'arc land' is used. When I used<br>
> the arcanist tool aka 'arc' to commit my most recent diffs it had the<br>
> surprising effect of committing all of the history of the 'feature branch'<br>
> as well.  This was unexpected behaviour to me, as my previous use of<br>
> arcanist has not had this behaviour. I'm of the mind that public history<br>
> should be somewhat clean, with each commit being a logical change (when<br>
> possible).<br>
><br>
> Apparently this behaviour is not the default behaviour and was configured<br>
> by adding the "history.immutable" : true configuration to ".arcconfig" in<br>
> the repository root.  This setting is about controlling the arc workflow,<br>
> and specifically how feature branches are landed. You can read more about<br>
> this setting here:<br>
> <a href="https://secure.phabricator.com/book/phabricator/article/arcanist_new_project" rel="noreferrer" target="_blank">https://secure.phabricator.com/book/phabricator/article/arcanist_new_project</a><br>
> /<br>
><br>
> This was intentionally configured, so clearly someone gave it some<br>
> thought.  I just wondered what the ongoing thoughts are on the use of 'arc<br>
> land'   With the immutable history setting, 'arc land' will make at least 2<br>
> commits for every 'arc land'. (one for the feature diff, one for the<br>
> merge).<br>
<br>
</span>I was copying the .arcconfig from another repository to kdevplatform/kdevelop/<br>
etc.. To be honest, at that time I thought 'history.immutable' was referring<br>
to history-rewriting in Git, so I thought it's fine.<br>
<br>
But after reading above link I'd lean towards removing that line, i.e. making<br>
it 'false'. I dislike having merge-commits for every single change we do via<br>
'arc land'. It's also more like it has been in reviewboard times.<br>
<br>
So in my opinion: Let's remove it.<br>
<br>
PS: All the other repos in KDE seem to have 'history.immutable' set to true as<br>
well. Not sure if it's intentional or just c&p'ed around.<br>
<br>
Maybe Aleix  can ask around (in his office?) what the other opinions of KDE<br>
people are?<br>
<br>
Cheers,<br>
Kevin<br>
<div class="HOEnZb"><div class="h5"><br>
> To be clear, I'm not talking about rewriting history of public repository.<br>
> Just how the commit history that is generated when working on a given<br>
> 'diff' in the arcanist workflow. Often there are multiple commits given the<br>
> code review process.<br>
><br>
> My personal preference is to keep public history clean, and have just one<br>
> commit in the public repository per landed "differential".  One can<br>
> accomplish this now by manually making commits. However, this largely<br>
> undoes some of the convenience of arcanist.<br>
><br>
> Seems the choices are:<br>
>    1) Don't use arcanist to land changes, manually squash change sets /<br>
> feature branches, and keep a 'clean' public history.<br>
>    2) Use arcanist, accept multiple-commits per "land"<br>
>    3) Use arcanist, configure to mutate history for 'land"<br>
><br>
><br>
> I am happy to work with any option.<br>
><br>
> -Andrew<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Kevin Funk | <a href="mailto:kfunk@kde.org">kfunk@kde.org</a> | <a href="http://kfunk.org" rel="noreferrer" target="_blank">http://kfunk.org</a></font></span></blockquote></div><br></div>