Nano Hash - криптовалюты, майнинг, программирование

Могу ли я переподключить историю для неправильно извлеченной библиотеки в subversion?

«Кто-то» извлек

/giant-repo/trunk/sublib

в

/fancyname/trunk

Некоторые из каталогов и файлов были скопированы или перемещены правильно, с использованием svn cp и svn mv, таким образом сохранив историю.

Другие, как файлы, так и каталоги, были созданы заново (изоморфно переименование по модулю из sublib в fancyname) в новом местоположении до того, как содержимое файла было скопировано из исходного местоположения (т. е. без версии).

Что я вижу:

~/work/fancyname> svn log -r 1234 --verbose
...
   A /fancyname/trunk/foo.txt
   A /fancyname/trunk/bar.txt (from /giant-repo/trunk/sublib/bar.txt:950)
...

Всего около 140 файлов и 100 коммитов в /fancyname/trunk на данный момент.

Есть ли способ сказать Subversion, что foo.txt, добавленный в r1234, действительно должен был быть копией из sublib/foo.txt:950?

Если нет (и я подозреваю, что это так), как я могу привести это в форму? Я предполагаю, что для файлов, у которых не было коммитов в новом репо, самым простым решением будет удалить новый файл (есть ли «супер» откат, который отменяет добавление из репозитория?), а затем выдать правильный svn cp.

Как насчет файлов с изменениями в новом репо, есть ли способ «замариновать» эти изменения, правильно скопировать файл, а затем повторно применить изменения?

svn
22.11.2016

Ответы:


1

вы не можете изменить историю в SVN (без дампа репо и изменения файла дампа, что является тяжелой и громоздкой работой).

Итак, самый простой (не правильный!) способ -

svn rename foo.txt foo_wrong.txt, затем

svn copy foo.txt@950 foo.txt (сейчас зафиксируйте)

этим вы исправили свою историю для foo.txt с этого момента. Время между историей версий нарушено. И вы не можете исправить это с помощью клиента svn.

23.11.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..