[PATCH 2 of 5] localrepo: invoke dirstate.unsureifambig in wwrite for safety

Pierre-Yves David pierre-yves.david at ens-lyon.org
Thu Jul 2 15:18:38 CDT 2015



On 07/02/2015 12:40 PM, FUJIWARA Katsunori wrote:
> At Tue, 30 Jun 2015 20:51:50 -0700,
> Pierre-Yves David wrote:
>>
>>
>>
>> On 06/30/2015 08:52 AM, FUJIWARA Katsunori wrote:
>>> At Mon, 29 Jun 2015 01:55:56 -0700,
>>> Pierre-Yves David wrote:
>>>>
>>>> On 06/28/2015 09:23 PM, Martin von Zweigbergk wrote:
>>>>>
>>>>>
>>>>> On Sun, Jun 28, 2015 at 9:07 AM FUJIWARA Katsunori
>>>>> <foozy at lares.dti.ne.jp <mailto:foozy at lares.dti.ne.jp>> wrote:
>>>>>
>>>>>
>>>>>       OK, I'll try to fix problems by invoking `dirstate.write()` at (*1) !
>>>>>
>>>>>
>>>>> Great! I wasn't sure if I was missing something and wasting everyone's
>>>>> time. I'm glad it now seems it was worthwhile. And thanks for working on
>>>>> this! I'm pretty sure I've been bitten at least twice by this while
>>>>> rebasing (dirty file appeared clean).
>>>>>
>>>>> Just a reminder that adding a check for dirty dirstate in
>>>>> localrepo.wwrite() seems like a good way to find the places to fix (and
>>>>> perhaps for printing a warning after we've fixed the known buggy callers).
>>>>>
>>>>> Does it make sense for workingctx._dirstatestatus() to do the writing?
>>>>> Or maybe it needs to be done at a higher level that's aware of any
>>>>> running transaction?
>>>>
>>>>
>>>> This discussion start to get long and complexe let's says it is time to
>>>> create a Plan page on the wiki. The idea is to have a single place where
>>>> to look for the latest state of the project, the various step we have to
>>>> do and that are the progress made on it.
>>>>
>>>> I've create a stub here:
>>>>
>>>>      https://mercurial.selenic.com/wiki/DirstateTransactionPlan
>>>>
>>>> (Thanks again for documenting and tackling these issue)
>>>
>>> Thanks for your many suggestions and starting wiki page up, too !
>>>
>>> I'll fill the page at first (maybe, with some additional topics around
>>> consistency for dirstate/transaction)
>>
>> Do not fell obligated to perfectly fill the page before sending patch.
>> There is a couple of things that seems obviously the right things to do
>> and were we could move forward with.
>>
>> The intend of the page is not to drown you under a bureaucratic burden,
>> more to keep track of the current issues and solutions. The goal is (1)
>> to ensure someone can know what's going on without going throught 20
>> emails and (2) someone can resume the work if you get distracted in the
>> middle of it.
>>
>> Copy pasting large chunk of the email thread should be good enough.
>
> Thank you for your suggestion.
>
> I just filled the page.
>
> For convenience, I put "Detail about HG_PENDING mechanism" section
> citing your mail into this page. But this section may have to be
> separated from this page (or exported into TransactionPlan ?)  as "how
> to use HG_PENDING mechanism" or so.

If we are writting about existing code, adding comment to the repo is 
probably the best way. But TransactionPlan will probably rework/unify 
some of that too.

Thanks alot for the update. Could we add a summary section (at the 
beginning?) that summarize the list of individual task we need to make? 
That will help keeping track of the progress and may help other people 
to give a hand.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list