2013-03-14 1 views
4

Есть ли расширение для Visual Studio 2010/Resharper, что приведет к тому, что файлы будут перемещены или переименованы во время рефакторинга соответственно git moved? Прямо сейчас, каждый раз, когда я перемещаю файл, мне приходится вручную git rm/git add, иначе если мне git move, то мне нужно входить в Visual Studio, чтобы он распознал перемещенные файлы.Получение VS2010/Resharper для «git move» во время рефакторинга

Я использую Visual Studio 2010, Resharper 7.1.2, Git Bash (версия git 1.8.1.2) и Git Source Control Provider.


Обновление: Я знаю, что мерзавец автоматически определяет движение раз в файлах были rm'd и добавили. Но я не хочу, чтобы вручную переписывать каждый файл, который был перемещен, и поскольку другие инструменты (например, IntelliJ IDEA), похоже, могут сделать это для меня, кажется разумным, что VS тоже должен быть в состоянии.

+0

Git автоматически распознает, когда файл был перемещен, когда вы устроили все. Вас может заинтересовать этот вопрос [Как git обнаруживает похожие файлы для обнаружения переименования?] (Http://stackoverflow.com/questions/7938582/how-does-git-detect-similar-files-for-its- rename-detection) – R0MANARMY

+0

Правильно, но выполнение всех удалений является серьезной болью, особенно потому, что git-bash не может заполнить те файлы, которые их больше нет. Другие IDE (включая Intellij IDEA) отлично справляются с этим, поэтому я не вижу причин, по которым VS/Resharper не сможет. –

+0

Если есть простой способ «git rm» (и только) файлы, которые были удалены из рабочей копии, это будет почти так же хорошо. Затем я мог бы обновить индекс git только двумя командами. –

ответ

0

Для меня (с VS2012, msysgit и Git Source Control provider) работает следующим образом:

  1. переименовать класс, используя ReSharper C-R C-R.
  2. ReSharper автоматически переименовывает файл
  3. В представлении «Ожидающие изменения» я получаю «Удалить» старого имени файла и «Создать» с новым именем файла.
  4. Я сохраняю все файлы, после чего файл проекта отображается как Измененный.
  5. В разделе «Ожидающие изменения» я проверяю флажок «Check-all», записываю комментарий и нажимаю кнопку фиксации.
  6. Готово.

Это также работает при перемещении файлов между папками в VS.

Я не совсем понимаю, где вы должны сделать ручной git rm или git mv

+0

В VS 2010 ничего не отображается в представлении «Ожидающие изменения» после рефакторинга/переименования. –

+0

Ах. Я чувствую твою боль. –