Безопасно ли игнорировать SVN. в каталоге, который должен контролироваться версией? - PullRequest
3 голосов
/ 23 февраля 2011

Вчера я задал вопрос о том, почему в Subclipse могут отображаться каталоги, содержащие незафиксированные изменения, а на самом деле их нет. Ответ состоял в том, что установка svn:ignore статуса в псевдо-каталоге . считается модификацией, но Subclipse ничего не показывал, потому что он не имеет отношения к ..

Знать причину приятно, но проблема не решена полностью. Безопасно ли совершать добавление статуса игнорирования в псевдо-каталог .? Я не хочу, чтобы фактический каталог игнорировался SVN; Я только хочу, чтобы унесенные изменения декоратор ушел. (Нет, я не пытался просто сделать это. Я бы не знал, как отменить изменение, если оно оказалось проблематичным.)

EDIT:
Как указано в ответе Тима, обвинение в модификации . вводит в заблуждение. . был помечен только как измененный, поскольку для одного из подкаталогов было установлено значение svn:ignore; это реальное изменение и первопричина.

1 Ответ

4 голосов
/ 24 февраля 2011

Исходя из полученного вывода svn diff, вы фактически установили svn:ignore для ресурса target.Эта информация о свойствах сохраняется в родительском версионном ресурсе (в данном случае в корне проекта .), чтобы его можно было зафиксировать в хранилище независимо от локальных настроек игнорирования.

С учетом этого безопасно лисовершить изменение свойства?Это зависит от того, какое влияние вы хотите оказать.Документация содержит примечание о свойстве svn:ignore:

Свойство svn: ignore - хороший способ сообщить Subversion, что он должен игнорировать файлы, которые могут присутствовать в каждом из них.рабочая копия этого каталога пользователя, такая как выходные данные компилятора ...

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

  • Запустить svn propdel svn:ignore . из командной строки
  • В Eclipse (с Subclipse) щелкните правой кнопкой мыши папку проектаперейдите в Team -> Show Properties, выберите запись свойства svn:ignore, щелкните правой кнопкой мыши и выберите Delete Property

. Это позволит избавиться от уведомления об изменении в корневом каталоге.Что касается вашего предыдущего вопроса, проблема была бы более очевидной, если бы не тот факт, что изменения свойств отображаются как обычные исходящие изменения в представлении синхронизации.Если бы вы открыли диалоговое окно «Зафиксировать», вы должны увидеть отдельный декоратор «Изменение свойства».

К сожалению, это оставляет ресурс target без внимания.Чтобы исправить это в Eclipse, вы можете добавить target в список игнорируемых ресурсов.Чтобы перейти к этой опции, перейдите в Окно -> Настройки -> Команда -> Игнорируемые ресурсы.Затем вы можете добавить «цель» в список шаблонов игнорирования.Если вы хотите применить шаблон игнорирования к Subversion глобально, вы можете изменить настройку global-ignores вашего файла конфигурации Subversion .

Проблема этого подхода заключается в том, что он игнорирует target ресурс для всех проектов в рабочей области Eclipse или для всех действий Subversion в системе (в зависимости от выбранного вами метода игнорирования).В настоящее время я не могу придумать, как это изменить в каждом конкретном случае.

...