Mercurial: переименуйте, затем создайте новый файл со старым именем - PullRequest
4 голосов
/ 13 августа 2011

Я использую TortoiseHg. У меня есть файл A. Я использовал инструмент переименования, чтобы переименовать его в B. Все, кажется, хорошо. Теперь я хочу создать новый файл с именем A. Когда я создаю файл с таким именем и иду, чтобы добавить его в репозиторий, он показывает мне разницу в моем новом файле со старым A (который теперь переименован в B.)

Как я могу переименовать A в B и иметь возможность добавить новый A, который, как вы знаете, новый, и в котором Hg не думает, что я изменяю старый, теперь несуществующий A?

Редактировать: На самом деле то, что я изначально делал, было правильным, я просто не переименовал должным образом. (Я зафиксировал, но зафиксировал только недавно переименованный файл, а не старый несуществующий файл.)

Ответы [ 2 ]

3 голосов
/ 20 августа 2011

Предположим, вы файл a.txt в вашем хранилище. Чтобы переименовать его в b.txt и добавить другой файл с именем a.txt, используя TortoiseHg 2.x, выполните следующие действия:

  1. Щелкните правой кнопкой мыши a.txt. В контекстном меню нажмите TortoiseHg > Переименовать файл .
  2. В диалоговом окне Переименовать введите b.txt в текстовое поле Назначение . Нажмите Переименовать .
  3. Щелкните правой кнопкой мыши папку хранилища. В контекстном меню нажмите Hg Commit .
  4. В окне Commit убедитесь, что вы проверили два файла, добавили b.txt и удалили a.txt. Введите описание фиксации и нажмите Commit . Закройте окно Commit .
  5. Создать новый файл с именем a.txt. Щелкните по нему правой кнопкой мыши. В контекстном меню нажмите TortoiseHg > Добавить файлы .
  6. В окне Add убедитесь, что установлен флажок a.txt. Нажмите Добавить .
  7. Щелкните правой кнопкой мыши папку хранилища. В контекстном меню нажмите Hg Commit .
  8. В окне Commit убедитесь, что у вас установлен флажок a.txt. Введите описание фиксации и нажмите Commit . Закройте окно Commit .

Теперь у вас есть другой a.txt с новой историей и b.txt, который помнит, что раньше назывался a.txt.

P.S. Это те же самые шаги, которые Вайбхав Баджпай опубликовал в своем ответе. Вам может быть трудно, если у вас есть проблемы с шагами, выраженными как hg команды.

3 голосов
/ 13 августа 2011

Вам необходимо зафиксировать после переименования, а затем создать новый файл с тем же именем.

$ hg mv A B
$ hg commit -m "moving A→B"
$ touch A
$ hg add A
$ hg commit -m "adding new A"
...