Как удалить временные файлы из Subversion, но сохранить копию в моей локальной папке?

Когда мы перешли в 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 ответа

Решение

Во-первых, что вы имеете в виду в 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)

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

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

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

Другие вопросы по тегам