Могу ли я уничтожить каталог из истории svn, который отличается только чувствительностью к регистру?

Так что много педантичных мнений, а не ответов на этот вопрос.

У нас была пара java-пакетов, случайно зарегистрированных с начальными заглавными буквами. (com.foo.PackageName), а затем правильно их переименовали (com.foo.packagename). Позвольте мне повторить, основываясь на прочтении некоторых ответов. У нас есть существующий "com.foo.packagename", который нужно оставить. Раньше у нас был «com.foo.PackageName», который мы переименовали в «com.foo.packagename».

Наш svn-сервер работает на Linux-системе с чувствительной к регистру файловой системой. Мы разрабатываем на Mac с «сохраняющими регистр» файловыми системами. Мой клиент svn из командной строки, похоже, отлично справился с проблемой и ничего не упоминает о файлах в com.foo.PackageName. Клиент svn, встроенный в netbeans, похоже, считает, что в двух каталогах, которые раньше были заглавными, есть файлы-призраки с «неизвестным» статусом.

Я предполагаю, что решение состоит в том, чтобы заставить сервер svn думать, что этих каталогов никогда не существовало .... или, возможно, какое-то другое решение? Они были так недолговечны под неправильными именами, что потеря истории их содержимого при неправильном названии не была бы проблемой. Копирование файлов, удаление каталогов из svn, а затем их повторное добавление ничего нам не дало. Кроме того, rm -Rf в моей локальной копии, а затем выполнение нового svn co все еще показывает каталоги-призраки.

Основная проблема заключается в том, что я не могу выполнить фиксацию на уровне проекта, или он пытается зафиксировать файлы-призраки и сходит с ума, поэтому я должен предоставить ему определенный набор файлов для фиксации или перейти к командной строке. .


person Brian Deacon    schedule 11.08.2010    source источник


Ответы (2)


Сначала взгляните на то, что сейчас находится в вашем репозитории:

svn ls http://server/svn...

если com.foo.PackageName все еще там, удалите его с помощью

svn rm http://server/svn.../com.foo.PackageName

После того, как вы привели свой репозиторий в порядок, я предлагаю вам сделать новую проверку вашей рабочей копии.

person laktak    schedule 11.08.2010
comment
com/foo/имя_пакета больше не существует. com/foo/имя_пакета есть. Это то, чего мы хотим. Но история знает, что раньше был com/foo/PackageName. Что в чувствительной к регистру файловой системе не будет проблемой. - person Brian Deacon; 12.08.2010
comment
Если вы не проверите ревизию, где PackageName все еще существует, это не вызовет никаких проблем. Если у вас есть теги/ветки, которые содержат PackageName, вы также должны исправить их. - person laktak; 12.08.2010

Попробуйте использовать svn delete --force в каталоге «Packagename» из операционной системы с учетом регистра. а затем зафиксируйте это изменение.

person Fernando Briano    schedule 11.08.2010