Подвижные файлы показа, как изменено неправильно

Когда я клонирую Подвижный репозиторий, он обычно показывает файлы, как изменяемые, когда они не имеют. Это может произойти, когда я делаю следующие шаги;

$ hg clone 
$ cd project
$ hg st
.... large number of files with M at the start for modified
$ hg diff
.... no result.

Я думаю, что это вызвано тем, что файлам изменили их полномочия в процессе, таким образом, кажется, что файлы отличаются, так как hg на самом деле не делает разности на каждом файле, когда hg Св. используется. Я знаю, что это может произойти в мерзавце также.

если я делаю фиксацию hg затем, проблема действительно уходит, но это означает, что я должен сделать пустую фиксацию, и это не особенно хорошо.

Я попытался делать различные вещи как hg Св. - все для получения большей информации, и она только показывает, что некоторые файлы изменяются - не все. Я не вижу шаблон.

Когда я делаю свой клон hg его случай на моем сетевом диске, который я использовал, потому что его сохраненный - я не уверен, могло ли это быть тем, что вызывает полномочия файла измениться? Я в настоящее время выполняю Ubunut 9.04.

существует ли способ, которым я могу заставить hg Св. исправлять себя так или иначе?

Рассматриваемым проектом (хотя ее произошедший с другими) является http://bitbucket.org/d0ugal/django-bursar/overview/, поскольку я надеюсь делать некоторую работу над ним.

7
задан Orange Box 8 February 2010 в 12:49
поделиться

2 ответа

Как выяснилось, выполнение:

$ hg diff --git

... показывает, что права доступа к файлам действительно изменились с 644 на 755.

Мне не особенно нравится решение, но я смог решить его, запустив это ( на сервере, на котором размещен код, а не на моем локальном компьютере).

find . -type f -print | xargs chmod 644

Затем два файла показали, что они изменились с 755 на 644 (поэтому я обновил их по отдельности). К счастью, в этом случае это было довольно просто, но проект с более разнообразными правами доступа к файлам может стать проблемой.

Я думаю, что проблема может заключаться в том, как мой сервер использует диск - мне нужно будет разобраться в этом в другой момент, но это пока пригодится. Это должно быть связано с тем, как файлы сохраняются на удаленной машине? Думаю, в следующий раз попробую сделать git clone на самом сервере, а работу над проектом локально.

В качестве побочного примечания, есть пункт об этом поведении в FAQ git. http://git.wiki.kernel.org/index.php/GitFaq#Why_does_git_diff_sometimes_list_a_file_that_has_no_changes.3F - хотя я не смог найти ничего для меркуриала.

0
ответ дан 7 December 2019 в 12:19
поделиться

Можно использовать класс java.util.UUID .

-121--967234-

См. следующую статью: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 (ссылка на стр. 7).

Он содержит алгоритм того, что автор называет путеводителями «COMB»; Я воспроизведу его код (SQL) ниже:

SET @aGuid = CAST(CAST(NEWID() AS BINARY(10)) 
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER)

Тривиально, чтобы преобразовать это в Java, или ваш нужный язык. Очевидный основополагающий принцип состоит в том, чтобы сделать дату компонентом Guid. Вся статья хорошо прочитана, так как он делает хороший анализ исполнения различных подходов.

-121--3010621-

Если изменились разрешения, эти различия можно увидеть с помощью hg diff --git . Я не уверен, почему разрешения изменятся при оформлении заказа.

5
ответ дан 7 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: