#svn #diff #review-board
#svn #diff #review-board
Вопрос:
Я пытаюсь использовать reviewboard
with SVN
. Другие пользователи в офисе получили настройки своей системы и могут публиковать (копии виртуальной машины, которая заставила ее работать в первый раз). Я сравнил настройки своей системы с их настройками, и, насколько я могу судить, все выглядит одинаково.
Когда я запускаю rbt post
команду, я получаю:
Не удалось выполнить команду: [‘svn’, ‘diff’, ‘—diff-cmd=diff’, ‘—notice-ancestry ‘, ‘-r’, ‘BASE’] [‘Index: main.cpp n’, ‘========================================================= ========== n’, ‘Usage: diff [OPTIONS] n’, ‘n’, ‘Отображать различия между и в унифицированном формате diff n’, «. ОПЦИИ являются расширенными расширениями, как описано в ‘svn help diff’.n», «Используйте только ‘—‘, чтобы указать, что больше никаких опций не следует.n», «svn: E200012: ‘diff’ вернул 2 n»]
Я сделал так, чтобы мой svn-клиент и gnu различали первые две вещи в моем системном пути: C:Program Files (x86)GnuWin32bin;C:Program Files (x86)CollabNet
Я использую компьютер с Windows 8.
Чтение https://groups.google.com/forum /#!topic/reviewboard/ylyfqMghJMM похоже, что другие добавили эту же проблему, но, похоже, нет точного объяснения того, как устранить проблему.
Некоторые подробности. svn --version
выдает:
svn, версия 1.8.9 (r1591380) скомпилирован 6 июня 2014, 03:53:07 на x86-microsoft-windows5.1.2600
Авторское право (C) 2014 Apache Software Foundation. Это программное обеспечение состоит из вкладов, сделанных многими людьми; смотрите Файл УВЕДОМЛЕНИЯ для получения дополнительной информации. Subversion — это программное обеспечение с открытым исходным кодом, см. http://subversion.apache.org /
Доступны следующие модули доступа к репозиторию (RA):
- ra_svn: модуль для доступа к репозиторию с использованием сетевого протокола svn.
- с аутентификацией Cyrus SASL
- обрабатывает схему ‘svn’
- ra_local : модуль для доступа к репозиторию на локальном диске.
- обрабатывает схему ‘file’
- ra_serf: модуль для доступа к репозиторию по протоколу WebDAV с использованием serf.
- использование serf 1.3.4
- обрабатывает схему http
- обрабатывает схему ‘https’
diff --version
выдает:
diff (GNU diffutils) 2.8.7, написанную Полом Эггертом, Майком Хаертелем, Дэвидом Хейсом, Ричардом Столлманом и Леном Тауэром.
Авторское право (C) 2004 Фонд свободного программного обеспечения, Inc. Это бесплатное программное обеспечение; условия копирования см. В источнике. Гарантии НЕТ; даже на ТОВАРНУЮ ПРИГОДНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.
Любые мысли или идеи о том, что я должен проверить или чего мне не хватает? Я тоже собираюсь опубликовать сообщение в группе Google, чтобы узнать, есть ли у них какие-либо идеи, если у них есть решение, я тоже обновлю этот пост.
Попробованы дополнительные шаги по устранению неполадок:
Я нашел сообщение, в котором я пытался решить проблему https://subversion.open.collab.net/ds/viewMessage.do?dsForumId=4amp;dsMessageId=436703 . Похоже, что мой неправильный SVN мог вызвать проблему с момента его установки первым.
Я удалил Tortoise и CollabNet, затем сначала перезагрузил установленную CollabNet, а затем Tortoise. При установке TortoiseSVN я НЕ выбрал «клиентские инструменты командной строки». Затем мне пришлось вернуть GNU Diff обратно в начало моего системного пути. После этого я попытался выполнить rbt post
и получил ту же ошибку. Затем я изменил установку Tortoise SVN на включение command line client tools
, а затем повторил попытку и все равно получил то же сообщение об ошибке.
Комментарии:
1. На случай, если это кому-нибудь поможет, я получал ту же ошибку без дальнейших объяснений, но оказалось, что срок действия моих учетных данных внезапно истек. Еще одна вещь, которую нужно попробовать, чтобы убедиться, что ваши учетные данные обновлены, если вы получаете общее сообщение «Не удалось выполнить команду».
Ответ №1:
После долгих разочарований мы разобрались с проблемой. У нас есть несколько разных diff, расположенных на компьютере, GNU Diff, а также diff, который поставляется с collab net (который мы используем для svn).
Collab net имеет svn.exe в своем каталоге. При выполнении a where diff
я смог увидеть, что путь и порядок были правильными, в которых GNU diff отображался перед diff CollabNet. Однако при выполнении команды использовался diff CollabNet, поскольку разница collab net находится в том же каталоге, что и у collab net svn.exe . Это означает, что когда ОС ищет diff.exe это проверка локального каталога, в котором svn.exe является первым, за ним следует системный путь.
При этом переименование «diff.exe » в папке collab net можно будет ссылаться на gnu diff, что решило проблему и позволило rbt post
работать должным образом.
Комментарии:
1. В моем случае, после использования
where diff
, я обнаружил, что у меня есть два diff.exe ; один из них принадлежит cygwin, другой — diffutils. Я выбираю переименовать один из cygwin, а затемrbt post
работает.
Ответ №2:
Кроме того, это может быть полезно для некоторых людей. Это может быть вызвано тем, что svn пытается разделить все, даже несуществующие файлы. => перейдите в настройки tortoisesvn, выберите «Общие», нажмите кнопку «Редактировать» перед «Файлом конфигурации Subversion». В открытом файле конфигурации убедитесь, что «diff-ignore-content-type = нет»