2013-11-08 3 views
2

У меня есть рабочий экземпляр Subversion G: \ csmdepot \ Builds с различными файлами в нем, некоторые из них игнорируются, некоторые из них (я игнорировал файлы с черепахой) :Игнорировать файл в Subversion удаляет старые значения из svn: игнорировать свойство

  • \ Build_1.wim игнорировали
  • \ Build_2.wim игнорировали
  • \ WimID.xml (не игнорируется)

Теперь автоматизировать все, что я хотел бы сделать это с помощью командной строки, и я попытался следующие (я пишу пакетный файл в VBScript и запустить его):

fso.MoveFile "G:\csmdepot\Builds\WimID.xml", "G:\WimID.xml" 

- - пакетный файл запуска

G: 
cd G:\csmdepot\Builds\ 
svn commit WimID.xml -m "Commit that WimID.xml is away" 
svn propset svn:ignore WimID.xml . 

Batch конец файла ---

fso.MoveFile "G:\WimID.xml", "G:\csmdepot\Builds\WimID.xml" 

... Но когда я возвращаюсь в свою папку G: \ csmdepot \ Builds все проигнорированные файлы помечены как не версированные, и единственное значение в svn: ignore - это WimID.xml, но также этот файл имеет версию. Когда я вручную фиксирую хотя бы WimID.xml, игнорируется.

Что я могу сделать добавлять WimID.xml к значениям СВН: игнорировать свойство без удаления старых и , что случилось с моим SVN совершить заявление?

EDIT: инструкция fso.MoveFile работает. Он должен что-то делать с моими командами svn.

ответ

2

Как вы заметили, используя svn propset svn:ignore, вы переопределите все, что у вас было: свойство svn: ignore, установленное ранее.

К сожалению, нет простой простой команды append относительно этого. Как описано here, если вы хотите добавить приложение, вам нужно выполнить какой-то сценарий пакетной/командной строки, чтобы исправить его.

Однако, если вы просто хотите сделать это иногда вы также можете сделать это с другими решениями:

  1. Указания цельного игнорировать установить, используя все желаемые узоры в виде файла (который я называю ignoredFiles), а затем use svn propset svn:ignore -F ignoredFiles .
  2. Вы можете добавить файлы на несколько строк, используя эту команду, нажав enter между именами файлов и имеющими кавычки вокруг всего аргумента, но это может работать только на определенных операционных системах/оболочках. Что-то вроде: svn propset svn:ignore ‘Build_1.wim [enter] Build_2.wim [enter] WimID.xml’ . [enter] (взято с comment in a blog post)
  3. Вместо этого используйте propedit: svn propedit svn:ignore ., но это требует небольшой настройки с помощью командной строки svn. См. svn help propedit для более подробной информации.
+0

Спасибо за ваш ответ. Для моих нужд мне нужен сценарий, как вы сказали: «К сожалению, нет простой простой команды append относительно этого. Как описано здесь, если вы хотите работать над добавлением, вам нужно сделать какой-то сценарий пакетной/оболочки, чтобы исправить это». Знаете ли вы способ написать ** пакет ** или ** vbscript **, что делает то же самое? – rugkei

3

После прочтения этого и связанный элемент в первом ответе,
я наткнулся на svn propget, который привел меня к идее написания этого:

svn propget svn:ignore .>>.svnignore 
echo WimID.xml>>.svnignore 
svn propset svn:ignore -F .svnignore . 

Я проверил это на окна (7) консоль с клиентом 1.6.23 svn
это работало для меня во всех случаях, независимо от того, было ли свойство ранее задано.

хорошая вещь, вы делаете svnignores видимыми в файле.

не уверен в коммите, может быть, вам нужно/нужно сообщить svn, чтобы удалить файл из svn?