Подтвердить что ты не робот

SVN: Как игнорировать измененный файл при фиксации?

Я редактировал некоторые файлы в svn, например:

$svn st
M  a
M  b
...

Теперь я хочу передать свои изменения в svn, по какой-то причине я не хочу фиксировать файл b, есть ли какой-либо быстрый способ или команда игнорировать измененный файл b?


Наконец, я использую @yzucker Solution 1, cp, revert и commit. Евангелисты слишком тяжелые, спасибо всем.

4b9b3361

Ответ 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 и просто выбрать только нужные флажки.