Git с cvs быстрее, чем только cvs?

Моя команда работает над проектом в резюме, содержащем около 20 000 файлов Java. Из-за количества файлов на обновление cvs требуется время. Обычно я оставляю около 5 копий всего дерева на извлечении, чтобы упростить проверку различных запросов, не беспокоясь о том, какие файлы были изменены для каждого из них. Очень сложно поддерживать все 5 деревьев в актуальном состоянии и синхронизировать друг с другом.

Я читал, что использовать git локально с удаленным cvs-сервером довольно просто, и что git работает быстро. Сможет ли git значительно ускорить обновление моих локальных деревьев?

Я понимаю, что нижняя граница - это время для одного обновления резюме. Но я думаю, что как только первое дерево будет обновлено, можно будет быстро синхронизировать остальные 4 с первым, вместо того, чтобы делать еще 4 команды обновления cvs. Я правильно понимаю git?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
0
1 487
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Мы делаем нечто подобное на работе. В основном мы используем ветку master в git как единую обновленную версию кода CVS; мы там не занимаемся разработкой, только обновления CVS. Затем все наши проекты разработки выполняются в функциональных ветках, которые мы переустанавливаем. Когда мы выполняем обновления CVS в ветви master, мы фиксируем эти изменения в master, а затем переустанавливаем наши другие ветки разработки на master.

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

Звучит неплохо. Шаг перебазирования быстрее, чем cvs up?

Craig P. Motlin 26.11.2008 20:20

Да, это на тонну быстрее, потому что все местное. Он в основном генерирует различия из вашей ветки и применяет их к новому заголовку ветки.

Pat Notz 26.11.2008 20:58

@ CraigP.Motlin, такие операции в git обычно выполняются почти мгновенно. Получение текущей версии из CVS происходит медленно (возможно, медленнее, чем в собственной CVS). Whay is a true bear - это первая проверка (либо CVS, либо SVN), она засасывает все ревизий. Для большого хранилища это может занять буквально несколько дней. Процесс довольно хрупкий, так как он теряет соединение с сервером и должен быть перезапущен (а если он не завершен, ничего не проверяется; не паникуйте, продолжайте). После клонирования одной копии репозитория CVS вы можете просто скопировать каталог.

vonbrand 25.01.2013 21:33
Ответ принят как подходящий

Я использую Git в качестве клиента Subversion в большом проекте (порядка 10 КБ файлов). Git быстрый, очень быстрый. Это настолько быстро, что я сохраняю только рабочий клон один и переключаюсь между ветвями функций в одном и том же клоне. Как и вы, когда я использовал Subversion, у меня было две или три одинаковых проверки, и я регулярно переключался между ними, поскольку у меня одновременно выполнялось несколько задач. Иногда это должно было быть довольно запутанным. Благодаря таким функциям Git, как облегченные ветки, тайник и «git add -p», я обнаружил, что мне больше не нужны множественные проверки. Я могу делать все в одном каталоге и не беспокоиться о потере изменений, которые я забыл или случайно перезаписал.

Я не использовал Git с CVS, но если его интеграция похожа на git-svn, то проблем не возникнет.

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

vonbrand 25.01.2013 21:26

Другие вопросы по теме