2011-02-07 3 views
3

При возврате файлов, которые были изменены локально, есть ли способ исключить файлы? Из-за обстоятельств, независящим от меня, мой текущий рабочий процесс заключается в следующем:Выборочный возврат на локально измененные файлы

  1. Создание диф файлов, которые я хочу, чтобы включить
  2. статус СВН, чтобы получить список изменений
  3. СВН REVERT, copypasting файлы, которые были включаются в различия
  4. rm'ing объедки - т.е. добавлены файлы не находятся под контролем версий

То, что я после того, как будет выглядеть как

svn revert -R --exclude file1 --exclude file2 /my/path 

ответ

4

Использование changelists.

Тэг все файлы как to_revert:
$ svn changelist to_revert -R /my/path

Untag некоторые файлы:
$ svn changelist --remove file1 file2

Revert только файлов с тегами:
$ svn revert --changelist to_revert -R /my/path

+0

Это является предпочтительным, но AFAIK, перезаписывает файлы в других . группы изменений – c0dem4gnetic

+0

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

0

Используйте find, чтобы сделать сопоставление.

find . -name .svn -prune -o -name file1 -o -name file2 -o -print0 | 
    xargs -0 svn revert -- 
  • -name file1 исключает по имени файла в любой подкаталог,
  • -path ./src/file1 исключает по определенному пути,
  • -path ./src/dir1 -prune исключает весь каталог.
Смежные вопросы