Вы добавляете материал, который уже существует. Простой ответ - заставить его:
svn add * --force
--force
будет "игнорировать уже версионные пути". Он также будет работать рекурсивно, что означает, что все неверсионные файлы будут добавлены в ваш репозиторий. Вам все еще нужно будет svn commit
, когда вы будете готовы. Если вы получаете какие-либо предупреждения, что что-то уже добавлено, вы можете просто проигнорировать это.
Вот более надежное решение, которое, я думаю, будет работать лучше для вас:
Это выглядит как у вас есть внешний проект, и вы отслеживаете изменения в выпусках. Похоже, что вы хотите заменить все на нетронутую копию вышестоящей версии.
Если IFF верно, выполните следующие действия:
- Из вашей рабочей копии удалите все локальное содержимое. Это уничтожит все локальные изменения:
rm -rf *
Извлеките код, которым вы хотите быть в своем хранилище, в свое хранилище. Если это просто другой каталог, просто скопируйте его. Я распаковываю архив в текущий каталог.
tar -xf ../project-release_1.2.tar.gz --strip-components=1 .
Если вы запустите
svn status
на этом этапе, вы увидите некоторые измененные файлы (
M
), некоторые новые (неверсированные) файлы: (
?
) и некоторые удаленные (отсутствующие) файлы (
!
). Перед фиксацией нам нужно добавить новые файлы (изменить
?
на
A
) и удалить удаленные файлы (изменить
!
на
D
).
svn delete $(svn status | sed -ne '/^!/p' | awk '{print $2}')
svn add $(svn status | sed -ne '/^?/p' | awk '{print $2}')
Просмотрите результаты с помощью
svn status
, затем подтвердите их!
svn commit