Как удалить временные файлы из Subversion, но сохранить копию в моей локальной папке? - PullRequest
1 голос
/ 07 июля 2011

Когда мы перешли в SVN, мы просто включили все и вся в наши папки в Subversion.Я хочу исключить все файлы журналов в папке.

Я нахожусь в Ubuntu.

thinkcode@myserver:~/Project1/Log/*.txt

Все файлы .txt находятся в Subversion, и эти файлы журналов создаются ежедневно.Я хочу удалить их из Subversion, но сохранить их в своей папке журнала.

svn propedit svn:ignore ./some_path, похоже, не работает.Новые * .txt файлы по-прежнему отображаются как '?'когда я делал svn status. Я попробовал его в новой папке, и я получил svn: 'c.txt' is not under version control

Любые предложения очень ценятся!

Ответы [ 3 ]

3 голосов
/ 07 июля 2011

Во-первых, что вы имеете в виду в Subversion ?

Давайте уточним это:

  • В Subversion есть место, где находятся все файлы и версиисохраняются.Это хранилище .Вы никогда не видите фактическую структуру каталогов хранилища, и, вероятно, у вас нет доступа для чтения / записи.

  • Вы извлекаете файлы из хранилища на локальный рабочийкаталог .Рабочий каталог отражает конкретную версию различных файлов и каталогов, которые хранятся в вашем хранилище Subversion.Тем не менее, у вас есть доступ к ним.Если вы внесете изменения в один из них и подтвердите их, вы обновили хранилище.


Хорошо, теперь, когда мы это выяснили, я собираюсьсделайте предположение, что файлы, о которых вы говорите, находятся в вашем локальном каталоге , но не в исходном хранилище .Это правильно?

В этом случае svn:ignore должен находиться в каталоге, где находятся файлы журнала, и должен иметь значение "* .txt".Вы можете сделать это следующим образом:

$svn propset svn:ignore "*.txt" .

Обратите внимание на использование кавычек вокруг *. Txt .Они необходимы в этом случае.Это предотвратит появление новых файлов в этом каталоге, если они соответствуют шаблону glob вашего svn: ignore, когда вы делаете svn status.Они также не будут добавлены, если вы просто скажете svn add:

$ svn add

Однако, если файлы уже находятся в хранилище, свойство svn:ignore ничего не изменит.Если вы хотите удалить файлы из хранилища, но сохранить их на локальном диске, вы можете сделать это:

$ svn delete --keep-local (files to delete)
1 голос
/ 07 июля 2011

svn статус '?' означает, что элемент не находится под контролем источника. svn status выведет список всех файлов в текущем каталоге, которые находятся под контролем исходного кода и были изменены, или что-либо, что не находится под контролем исходного кода.

Поэтому кажется, что если он все еще находится в вашем локальном каталоге, вы уже достигли того, чего хотели.

0 голосов
/ 07 июля 2011

Требуется две операции: удалить и игнорировать. Сначала отметьте все файлы для удаления. Тогда совершай. После этого примените игнорирование и убедитесь, что вы применяете его рекурсивно.

...