Исключить некоторые файлы из коммита командной строки svn (не svn: ignore)

Я развиваюсь со многими людьми.

Я проверяю удаленный репозиторий, получаю 3 файла. После редактирования запустите:

svn status

Это показывает:

M file_1
M file_2
M file_3

Теперь я хочу совершить только два файла: file_1, file_2, file_3, но не.

как это сделать?

Я не хочу использовать

svn revert file_3

прежде чем совершить.

объясняю: я редактирую file_1, file_2 для общего проекта, file_3 для работы только на моей локальной машине.

7 ответов


Как насчет:

$ svn commit file_1 file_2

расширение ответа Зула.. для разработки списка файлов используйте:

svn stat |  grep -v ignore.file | perl -ne 'chop; s/^.\s+//; print "$_ "'

или если у вас имена файлов с пробелами использовать:

svn stat |  grep -v ignore.file | perl -ne 'chop; s/^.\s+//; print "\"$_\" "'

одна строка для bash:

svn ci $(svn stat | grep -v exclude.file)

просто добавьте пути файлов для фиксации в команду svn commit:

svn commit file_1 file_2

см.http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.commit.html


вот версия Windows powershell, которая фиксирует только файлы, которые не находятся в списке изменений. Создайте список изменений под названием ignore-on-commit (который Tortoise SVN все равно поймет) и поместите в него файлы, которые вы не хотите фиксировать.

# get list of changed files into targets
[XML]$svnStatus = svn st -q --xml C:\SourceCode\Monad
# select the nodes that aren't in a changelist
$fileList = $svnStatus.SelectNodes('/status/target/entry[wc-status/@item != "unversioned"]') | Foreach-Object {$_.path};
# create a temp file of targets
$fileListPath =  [IO.Path]::GetTempFileName();
$fileList | out-file $fileListPath -Encoding ASCII
# do the commit
svn commit --targets $fileListPath -m "Publish $version" --keep-changelists 
# remove the temp file
Remove-Item $filelistPath

Я закончил создание сценария, содержащего следующее:

svn ci $(svn diff --summarize | \
    grep -v exclude.file1 | \
    grep -v exclude.file2 | \
    ...
    grep -v exclude.fileN \
)

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


может быть, вы можете использовать эту команду.

svn ci `svn st | grep -e "^[A|M]" | grep -v "test.js" | grep -ve "conf\.js$" | awk '{print }' | tr "\n" " "`