SVN: игнорировать не работает, как ожидалось - PullRequest
0 голосов
/ 07 июня 2011

Я пытаюсь собрать тестовый пример для другой проблемы, которая у меня есть, и для этого я хочу имитировать svn-репозиторий с каталогом в svn: ignore.Когда это значение установлено, каталог, указанный в значении, исключается из контроля версий?верно?

ниже схемы того, что я сделал.И результаты, которые я получил.Я в некотором роде озадачен, надеюсь, кто-то здесь может мне помочь.

[/tmp]$svn --version
svn, version 1.6.15 (r1038135)
  compiled Nov 29 2010, 16:11:54

[/tmp]$mkdir svnadmin
[/tmp]$cd svnadmin/
[/tmp/svnadmin]$svnadmin create ignoretest
[/tmp/svnadmin]$mkdir ../client
[/tmp/svnadmin]$cd ../client
[/tmp/client]$svn co file:///tmp/svnadmin/ignoretest
Checked out revision 0.
[/tmp/client]$cd ignoretest/
[/tmp/client/ignoretest]$svn propset svn:ignore private .
property 'svn:ignore' set on '.'
[/tmp/client/ignoretest]$svn propget svn:ignore
private

[/tmp/client/ignoretest]$svn ci -m "ignore set"
Sending        .

Не уверен, должен ли я выполнять коммит здесь, в моем понимании svn: ignore - это глобально признанный параметр, настройка которого здесь означаетон установлен для центрального хранилища?

Committed revision 1.
[/tmp/client/ignoretest]$mkdir private
[/tmp/client/ignoretest]$echo 'secret' > private/file1.txt
[/tmp/client/ignoretest]$svn add *
A         private
A         private/file1.txt
[/tmp/client/ignoretest]$svn ci -m "something wrong?"
Adding         private
Adding         private/file1.txt
Transmitting file data .
Committed revision 2.

Это поднимает красный флаг со мной

[/tmp/client/ignoretest]$mkdir ../../client2
[/tmp/client/ignoretest]$cd ../../client2
[/tmp/client2]$svn co file:///tmp/svnadmin/ignoretest
A    ignoretest/private
A    ignoretest/private/file1.txt

Это действительно проверено.

 U   ignoretest
Checked out revision 2.

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Я думаю, что вы используете svn add *, который дает вам неожиданные результаты. Оболочка обычно расширяет * на все файлы и включает игнорируемые. По сути, svn: ignore было, ну, игнорировано. Я думаю, вам лучше использовать svn add –force .

1 голос
/ 08 июня 2011

Установка свойства ignore фактически не мешает вам добавлять файлы в хранилище. Он просто не дает svn сообщать об этих именах при запуске «svn status».

Если вы запустите «svn status» после установки свойства ignore, вы заметите, что «private» не отображается. Однако ничто не помешало вам явно добавить и зафиксировать его, как вы это делали с «svn add *».

...