SVN: Как игнорировать измененный файл при фиксации?
Я редактировал некоторые файлы в svn, например:
$svn st
M a
M b
...
Теперь я хочу передать свои изменения в svn, по какой-то причине я не хочу фиксировать файл b
, есть ли какой-либо быстрый способ или команда игнорировать измененный файл b
?
Наконец, я использую @yzucker Solution 1, cp, revert и commit. Евангелисты слишком тяжелые, спасибо всем.
Ответы
Ответ 1
Увы, комментировать многие файлы с некоторыми неприятными изменениями игнорировали проблему.
Решение 1: копирование, возврат и фиксация
$cp b /tmp/
$svn revert b
$svn commit -m 'commit message'
$mv /tmp/b ./
Решение 2: скопировать, зафиксировать, отменить действие b, подтвердить b
$cp b /tmp/
$svn commit -m 'commit message'
$svn merge -c -{new revision} b
$svn commit b -m 'revert message for b'
$cp /tmp/b ./b
Второй подход менее предпочтителен, так как вы вводите неработающий код в svn.
Ответ 2
Вы можете использовать Changelist Особенность новых клиентов Subverion, как показано в этом коротком примере:
$ svn st
M a
M b
$ svn cl task1 a
$ svn cl task2 b
$ svn st
--- Changelist 'task1':
M a
--- Changelist 'task2':
M b
$ svn ci --cl task1 -m "checking in only task 1 stuff"
Sending a
Committed revision 11.
Ответ 3
Я не думаю, что есть возможность исключить только один файл и включить все остальные, которые были изменены. В вашем примере вы можете включить только файлы, которые вы хотите совершить, с помощью
svn co a -m "Only commit a"
который затем исключает b. Смотрите документацию команды с примерами в конце.
Другим вариантом может быть использование changelists, но это более тяжело...
Ответ 4
Если файл b
уже добавлен в репозиторий, его больше нельзя игнорировать. Вы должны удалить этот файл, зафиксировать, воссоздать и установить свойство игнорировать следующим образом:
svn propset svn:ignore b .
Конечная точка означает текущую папку.
Если вы хотите игнорировать файлы только в этом коммите, введите их имена явно в команде commit
svn co a c d
Где a
, c
, d
- файлы, которые вы хотите зафиксировать.
Ответ 5
В окнах вы можете использовать GUI-клиент TortoiseSVN и просто выбрать только нужные флажки.