Как сохранить историю изменений при переименовании файлов в Visual Studio с помощью Perforce - PullRequest
5 голосов
/ 15 февраля 2012

Я знаю, что уже есть несколько вопросов о переименовании файлов с помощью системы контроля версий.Но я не нашел удовлетворительного ответа на специальную систему контроля версий Perforce .
Мой вопрос: есть ли плагин / решение, которое хранит историю версий моего C #закодировать файлы, когда я переименую его в Visual Studio?

Редактировать: В настоящее время я использую плагин VS2P4.

Edit2: я нашел несколько более короткий способ переименования файла:

  1. Открыть папку с содержимым в проводнике (в обозревателе решений щелкните правой кнопкой мыши Открыть в проводнике Windows).
  2. Выберите файл и щелкните правой кнопкой мыши Perforce-> Show in P4V.
  3. Выполните обычное действие переименования / перемещения с выбранным файлом.

Этот сценарий короче, чем навигация в Perforce Depot в P4V, пока я не найду нужный файл.Но, конечно, я ищу более короткий путь.

Edit3: есть ли способ напрямую выполнить «Show in P4V» с выбором файла в VS?

Ответы [ 4 ]

6 голосов
/ 15 февраля 2012

Существует новый плагин Visual Studio для Perforce, который скоро выйдет в бета-версии. Он поддерживает встроенную операцию переименования Visual Studio, а также хорошо работает с Resharper.

Пока оно не вышло, боюсь, что существующие решения немного неуклюжи.

1 голос
/ 24 февраля 2012

Вы можете сэкономить шаг в этом процессе, настроив внешний инструмент в VS (Инструменты-> Внешние инструменты), чтобы открыть исполнение для документа, который вы открыли. Не идеально, но ближе к тому, что вы хотите.

Command: p4v.exe
Arguments: -s $(ItemPath)
Initial Directory: $(ItemDir)
0 голосов
/ 25 июля 2012

Macro

У меня сейчас хорошее решение. Просто обработайте событие макроса SolutionItemsEvents_ItemRenamed.
Это можно сделать, открыв макрос IDE, нажав Инструменты-> Макросы-> Макрос IDE . Затем добавьте следующий обработчик событий в ваш макропроект:

    Private Sub SolutionItemsEvents_ItemRenamed(ByVal ProjectItem As EnvDTE.ProjectItem,
                                                ByVal OldName As String)
                Handles SolutionItemsEvents.ItemRenamed

        Dim process As System.Diagnostics.Process

        process.Start("p4", "move -k " & ProjectItem.Properties.Parent.Document.Path &
                      "\\" & OldName & " " & ProjectItem.Document.Path)
    End Sub

Смотрите скриншот: enter image description here

Как вы можете видеть, он просто вызывает "p4 move -k". Опция "-k" необходима, потому что после переименования старый файл уже удален, поэтому Perforce выдаст ошибку без "-k". «-k» заставляет Perforce переименовывать файл только на сервере.

Если вы получаете Perforce ошибки соединения , вам нужно добавить файл P4CONFIG, где определено соединение. Это делается:

  • Добавить файл p4config.txt в каталог вашего проекта (или любой из его родительских каталогов) с содержимым:

    P4CLIENT = ваше рабочее пространство
    P4USER = Пользователь
    P4PORT = p4server: 1234

  • Установить переменную среды P4CONFIG = p4config.txt

Теперь вы можете изменить ваши файлы любым способом (Solution Explorer Item-> Rename, Solution Explorer Item-> F2, ReSharper's Переименовать файл, чтобы он соответствовал имени типа , ReSharper's class Rename (Ctrl + R, R), ...).

Но имейте в виду: У меня проблемы, если я пытаюсь отредактировать и переименовать один и тот же файл в одном чек-ине и если я переименую файл, когда другой человек извлек тот же файл.

0 голосов
/ 23 февраля 2012

Плагин Visual Studio обеспечивает отличную интеграцию с Visual Studio. Все операции переименования работают хорошо, и история отслеживается хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...