Зная, была ли обновлена ​​рабочая копия SubVersion - PullRequest
0 голосов
/ 01 октября 2008

Есть ли способ получить файл, который изменяется / затрагивается при обновлении WC до новой ревизии? Или, как второй лучший вариант, при выполнении svn update?

Вот мотивация: я хочу, чтобы номер SVN-версии находился внутри моего исполняемого файла. Поэтому я должен запустить SubWCRev как часть сборки. Выходной файл SubWCRev создается заново каждый раз, даже если номер редакции не изменился. Это означает, что exe связан с каждой сборкой, даже если ничего не изменилось. Я хочу, чтобы он был связан только по мере необходимости.

Ответы [ 3 ]

3 голосов
/ 01 октября 2008
  1. Получить вывод SubWCRev во временный файл
  2. Сравнить этот файл с текущим номером редакции
  3. Перезаписать его временным файлом, только если они разные
  4. Удалить временный файл

Возможно, вы даже сможете сделать это с файлом .bat (используя fc). Что-то вроде ...

REM ***UNTESTED***
FC temp.rev curr.rev | FIND "FC: no dif" > nul 
IF NOT ERRORLEVEL 1 COPY /Y temp.rev curr.rev
DEL temp.rev

Редактировать: Кроме того, вы можете сделать это в Mercurial, указав число оборотов в файле .hg/dirstate.

1 голос
/ 01 октября 2008

Это звучит как дубликат этого обсуждения здесь: Встраивание номера редакции SVN во время компиляции в приложение Windows

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

В вашем случае вы хотите следить за модификатором M в выводе svnversion: он даст вам знать, что ваш WC был изменен.

0 голосов
/ 01 октября 2008

Мой ответ, вероятно, будет слишком коротким, но может дать вам некоторое указание.

SVN имеет крючки. Это скрипты, которые выполняются каждый раз, когда код фиксируется.

Может быть?

...