our team is faced with an incomprehensible problem
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue May 2 22:32:30 UTC 2023
So, we do some special encoding of file path that get too long (to
accommodate limited OS/Filesystem), the backup process may push a
filename above this limit, making it use a different directory.
I just sent a fix for this issue alongside and associated test. This
should make it into 6.4.3 due to be tagged this week.
Thank you very much for the report !
On 4/28/23 14:40, Pierre-Yves David wrote:
> Hi,
>
> You seems to hit a bug with some internal operation in Mercurial whose
> implementation details were changed in 6.4. I am also a bit puzzled
> about how this would happens as the backup should be done in the same
> directory as the source file, however bug are kind of surprising by
> nature.
>
> Can you file a bug on https://bz.mercurial-scm.org/ ? I'll have a look.
>
> On 4/27/23 15:41, Иван Федосеев wrote:
>>
>> the server uses the latest version of mercurial 6.4.2
>> python 3.10
>>
>> There are different versions of mercurial on the client, I will make
>> a conclusion from 6.4.2 python 3.6
>>
>> some of our employees are interrupted by the hg pull command with the
>> wording:
>>
>> dmitriy.morozov at d-morozov rpg3d % hg pull -u
>> pulling from http://hg.tvorog.bit/rpg3d
>> searching for changes
>> adding changesets
>> adding manifests
>> adding file changes
>> transaction abort!
>> rollback completed
>> abort: No such file or directory:
>> '/Users/dmitriy.morozov/var/rpg3d/.hg/store/dh/unity/assets/assets/equipmen/man/archer/07/body_arc/journal.backup.body_arcc83b02f2fdf76ab8cabb0b0911ced537efa33cdc.i'
>>
>> I turned on traceback and realized that the file that was not found
>> was being created in the process. But it is not possible to create it
>> because of the missing directory.
>>
>> I managed to solve this problem by editing the file
>> */usr/lib64/python3.6/site-packages/mercurial/util.py*
>> String number is *1966*
>>
>> else:
>> try:
>> * destpath = os.path.dirname(dest)
>> os.makedirs(destpath, exist_ok=True)
>> *
>> shutil.copyfile(src, dest)
>> if copystat:
>> # copystat also copies mode
>> shutil.copystat(src, dest)
>> else:
>> shutil.copymode(src, des
>>
>> after making edits, the problem is not observed. But I don't
>> understand why this error appears and why journal files are
>> created.backup
>> the error also does not depend on http/ssh server usage
>> --
>> Иван Федосеев
>> agestart at gmail.com
>> +7-960-327-3301
>> ООО Бит.Геймс Инжиниринг
>>
>> _______________________________________________
>> Mercurial mailing list
>> Mercurial at lists.mercurial-scm.org
>> https://lists.mercurial-scm.org/mailman/listinfo/mercurial
>
--
Pierre-Yves David
More information about the Mercurial
mailing list