Как удалить дубликат файла в предыдущей ревизии - PullRequest
1 голос
/ 21 декабря 2011

Я по ошибке зафиксировал файл дважды - единственная разница - заглавная буква в имени одного из файлов:

  • Myfile.txt
  • MyFile.txt

Используя Черепаху, я вижу два файла в предыдущей ревизии, я могу выбрать их, и когда я нажимаю delete , он запрашивает у менякомментарий и коммит говорят, что URL не существует.Мне больше не нужны эти два файла.

Мы используем Trac для управления проектами, но он не смог синхронизироваться с нашим кодом, так как я зафиксировал два файла.

Что я могу сделать, чтобы удалить проблемные файлы?

Ответы [ 3 ]

2 голосов
/ 26 декабря 2011

В случае ошибок пути, подобных этой, я настоятельно рекомендую использовать клиент командной строки SVN вместо графического клиента, такого как Tortoise. Вы можете использовать команду 'svn list', чтобы получить точные имена файлов / папок, поскольку хранилище их видит, а затем скопировать / вставить их в команду 'svn delete'. Таким образом, вы уменьшите шансы столкнуться с проблемами, связанными с делом.

Исходя из вашего комментария к ответу msorens, похоже, что рассматриваемый файл не существует в текущей главе хранилища. Если это так, вы не можете многое сделать. Subversion рассматривает историю хранилища как одну линейную серию коммитов. Все модификации делаются для главы репозитория; как правило, вы не можете вернуться назад во времени и изменить прошлое состояние хранилища. Можно (но не просто) удалить коммит, но он отбрасывает все, что идет после него. Поэтому рекомендуется делать это только с самой последней фиксацией в хранилище (чтобы минимизировать побочные эффекты). Некоторые другие системы управления версиями (например, git) имеют дополнительные возможности в отношении изменения истории репозитория. Subversion, к сожалению, нет.

1 голос
/ 22 декабря 2011

Насколько я понимаю, ваш вопрос не в том, чтобы заставить Subversion забыть о ваших файлах (как обсуждалось в ответе Денниса), а в том, чтобы исправить ситуацию, когда у вас есть два непригодных файла, потому что их имена отличаются только регистром.Решение довольно простое - откройте браузер хранилища и удалите или переименуйте один из поврежденных файлов.Это может быть сделано даже в системе, которая изначально нечувствительна к регистру (например, Windows), поскольку само хранилище по-прежнему чувствительно к регистру.(Справочное руководство для этого, хотя и не говорит о чем-то большем, это Работа с конфликтами в именах файлов .)

0 голосов
/ 21 декабря 2011

Нет простого пути, потому что svn разработан так, чтобы никогда ничего не забывать.Существует обходной путь , который вы можете попробовать.

...