У меня есть частично проверенное дерево источников.Они были неправильно проверены с помощью таких команд:
> svn co --depth=empty svn://repos/trunk .
> svn co --depth=infinity svn://repos/trunk/project project
> svn co --depth=infinity svn://repos/trunk/test test
Конечно, команды должны были выглядеть примерно так:
> svn co --depth=empty svn://repos/trunk .
> svn up --set-depth=infinity project
> svn up --set-depth=infinity test
В результате появились следующие симптомы:
> svn st
? project
? test
хотя
> svn info
Path: .
URL: svn://repos/trunk
Repository Root: svn://repos
Repository UUID: 01234567-89ab-cdef-0123-456789abcdef
Revision: 1234
Node Kind: directory
Schedule: normal
Depth: empty
> svn info project
Path: project
URL: svn://repos/trunk/project
Repository Root: svn://repos
Repository UUID: 01234567-89ab-cdef-0123-456789abcdef
Revision: 1234
Node Kind: directory
Schedule: normal
(Любопытно, что симптомы не возникают, если первая команда была svn co --depth=immediates svn://repos/trunk .
.)
Теперь причина в том, что файл
./.svn/entries
не содержит записей для каталогов project
и test
.(Я могу исправить свою проблему, взломав этот файл напрямую, но я бы предпочел этого не делать.)
Мой вопрос:
Существует ли команда Subversion для 'coalesce'эти рабочие копии, так что svn st
молчит (или показывает локальные изменения в проекте и тесте)?
Я пробовал разные вещи, в том числе
svn up -set-глубина = сразу же --depth = пусто.
, но это не работает, потому что --depth
и --set-depth
"взаимоисключающие".
Я также пытался
svn up --set-глубина = проект бесконечности
, но это не работает, потому что project
интерпретируется как относительный путь локально, а не в хранилище;то есть URL-адрес формируется после применения относительного пути к текущему каталогу, а не до него.
Хуже того, я попытался
svn up --set-deep =немедленно.
но это приводит к нежелательному (но правильному) эффекту веселого удаления файлов.
Этот вопрос более актуален, чем описанные мной обстоятельства.Другая ситуация, которая может потребовать такого рода «исправления», заключается в том, что вы хотите проверить родительский элемент самого верхнего узла, который уже был извлечен, без необходимости повторной проверки источников, которые уже существуют локально, и при этом без каких-либо локальных изменений.
Спасибо, Роб.