Почему не, стирают существенную особенность Подверсии?

В течение нескольких лет теперь, я ожидаю Подверсии к функции, "удаляют постоянно" (стирают) функцию. Я смущаюсь делать переход к Подверсии (прибывающий из Visual SourceSafe :p), потому что я думаю, что это - существенная особенность, поскольку иначе я ожидал бы, что репозиторий вырастет без остановки. Однако по одной причине или другому, функция отложена много раз. Таким образом, я начинаю задаваться вопросом, существует ли некоторая другая функция или обходное решение, которое делает стереть функцию необязательной.

Что Вы делаете, когда Вы хотите уменьшить центральный репозиторий SVN?

Пример 1: Я регистрируюсь в крупной сторонней библиотеке, и после нескольких недель я понимаю, что она не подходит для моих потребностей. Я не хочу, чтобы это сохранило и скопировало тот большой объем данных навсегда.

Пример 2: у Меня есть 10 версий 10 крупных сторонних библиотек в репозитории, но я только использую последние версии.

Пример 3: Я случайно зарегистрировался в уязвимой информации (как предложил John).

Пример 4: Я случайно зарегистрировался в некоторых больших файлах, которые никогда не предназначались, чтобы быть помещенными в репозиторий.

20
задан Community 23 May 2017 в 11:50
поделиться

11 ответов

В заявке о проблеме на сайте Apache Subversion довольно много говорится о svn Obliterate , большая часть этого заканчивается примерно в 2008 году. Похоже, все согласны с тем, что это хорошая возможность, хотя ее использование должно быть редкостью.

Есть две основные причины этого желания.

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

Во-вторых, регистрация большого количества вещей, которые не следует возвращать, может значительно увеличить размер репозитория. В настоящее время дисковое пространство, как правило, дешево, но оно не неограниченно, и есть другие способы, которыми файловое пространство может иметь значение. Если необходимо отправить репозиторий через сетевое соединение, это дополнительное время, которое может быть или не иметь значения. Возможность записи CD-ROM или DVD-ROM, содержащих весь репозиторий, может иметь реальные преимущества.

Следовательно, это полезная возможность, которая в настоящее время реализуется путем сброса, фильтрации и перезагрузки репозитория. Согласно отчетам, которые я видел, это подвержено ошибкам, может быть медленным и требует закрытия репозитория.

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

19
ответ дан 29 November 2019 в 22:33
поделиться

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

Интересно, по каким причинам вам нужна эта функция:

  • дисковое пространство? Трудно поверить, учитывая цену дискового пространства
  • , который вводит пароль для контроля версий? Что ж, это вас научит. Иди и смени пароль
  • скорости репозитория? Звучит не так, но если бы я подумал о совершенно другой системе с якобы лучшей производительностью.
5
ответ дан 29 November 2019 в 22:33
поделиться

Это нарушает смысл управления версиями.
Контроль версий - это возможность восстановить предыдущее состояние. Если вы удалите файл навсегда, вы не сможете это сделать.

OTOH Я не знаю VSS, поэтому, возможно, неправильно понял "удалить навсегда"

11
ответ дан 29 November 2019 в 22:33
поделиться

Что я делаю - не использую подрывную деятельность. Сожалею.

Они (разработчики) явно не согласны с вашей оценкой того, что это важная функция. Не остановил компанию, в которой я работаю в данный момент, чтобы использовать его;) Я лично исключаю подрывную деятельность именно по этой причине.

1
ответ дан 29 November 2019 в 22:33
поделиться

Можно уменьшить размер репозитория SVN, выполнив дамп и загрузку. По сути, если вы говорите, что никогда не хотите возвращаться к чему-то старше пары лет, можно выгрузить репозиторий, отфильтровать по времени, а затем перезагрузить дамп. Желание избавиться от одного файла из-за его размера, вероятно, свидетельствует о том, что этот файл изначально не принадлежал системе управления версиями.

5
ответ дан 29 November 2019 в 22:33
поделиться

Поскольку удаление данных из репозитория нарушает основную предпосылку управления версиями, то есть возможность воспроизвести все предыдущие состояния и изменения исходного дерева. Если вы хотите что-то стереть из системы контроля версий, вы, вероятно, «делаете это неправильно», как говорится.

5
ответ дан 29 November 2019 в 22:33
поделиться

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

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

4
ответ дан 29 November 2019 в 22:33
поделиться

Уничтожение не является существенной особенностью Subversion, потому что оно фактически нарушает основные принципы управления версиями (а именно: запись всей истории).

И это не важная функция, потому что в любом случае есть обходной путь (с использованием svnadmin и фильтрации).

Кроме того, эта функция в настоящее время активно работает. См. этот пост для подробностей.

2
ответ дан 29 November 2019 в 22:33
поделиться

Есть несколько сценариев, которые помогут вам стереть данные. Подпишитесь на эту ветку списка рассылки для получения дополнительной информации.

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

5
ответ дан 29 November 2019 в 22:33
поделиться

Уничтожение нарушает принципы контроля версий, которые вы хотели бы иметь. Либо вы не сэкономите место, либо предыдущие теги будут повреждены. Вы не сможете вернуться к настоящей предыдущей версии, если удалите какие-либо файлы.

Что касается вашего комментария о росте репозитория ... Любой репозиторий будет расти линейно с размером изменений с течением времени. В этом весь смысл системы контроля версий. Если вам не нужно отслеживать предыдущие версии, почему бы просто не сохранить где-нибудь общую папку?

7
ответ дан 29 November 2019 в 22:33
поделиться

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

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

8
ответ дан 29 November 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: