Использование GIT с Eclipse и резервным копированием репозитория - PullRequest
1 голос
/ 20 февраля 2011

Я совершенно новичок в «Распределенной системе контроля версий» (DVCS) и «Централизованной системе контроля версий» (CVCS).Я как-то понял разницу между ними.В настоящее время в моем офисе мы используем хранилище CVS, которое очень старое, и меня просят перейти на любую новую версию.Я не знаю ничего, кроме резервного копирования репозиториев CVS (каталог / usr / local / cvsroot) и создания пользователей cvs, и я сделаю это с помощью инструмента webmin.Разработчики подключаются к репозиториям cvs и делятся своими проектами с помощью приложения Eclipse.

Я рассмотрел SVN, у которого есть некоторые преимущества и недостатки перед CVS.Я хотел бы выбрать CVCS вместо репозитория DVCS, чтобы у меня был репозиторий в одном месте (потому что я думаю, что мне легко создавать резервные копии репозиториев).SVN основан на CVCS, но я ищу что-то передовое, которое имеет только преимущества перед cvs, а не ограничениями.

Я слышал, что GIT лучше всего и репо на основе DVCS.Наконец, я хотел бы использовать git, но не знаю, как это работает.Моя проблема с этим - это DVCS, который я не понял правильно.Поскольку говорят, что DVCS не имеет централизованного репозитория, и у каждого пользователя будет свой собственный набор репозиториев на их локальном компьютере, который может использоваться другими пользователями, но нет никакой возможности сохранить все репозитории пользователей на сервере, который упрощает резервное копирование.централизованно ?.Eclipse строго используется в моем офисе, и я думаю, возможно ли подключиться к git с помощью eclipse (если у него есть плагин или что-то должно быть сделано).

Наконец, я пытаюсь спросить, есть ли кто-нибудьмог бы объяснить мне, как на самом деле работает GIT.Я ожидаю вполне практического объяснения теории intead с использованием eclipse и т. Д., Если есть возможность подключиться к git и есть ли способ хранить все репозитории централизованно, если нет, должен ли я добраться до каждой машины и сделать резервную копию репозиториев ?.Если мерзавец мне не подходит, тогда мне придется попробовать SVN.Я полностью сбит с толку!

Спасибо!

Ответы [ 3 ]

1 голос
/ 20 февраля 2011

Большое преимущество DVCS над CVCS заключается в следующем:

  • Разработчики могут работать с кодом, не подключаясь к основному репозиторию (извлечение, переход, изменение кода, принятие и т. Д.)
  • Как только они довольны изменениями, они помещают свой код в главный репозиторий
  • Чтобы убедиться, что их код не расходится с основным репозиторием, они часто обновляются, так что "нетронутыми"код в их локальном репозитории остается таким же, как и в главном репозитории

Так, где находится главный репозиторий?
Это зависит от команды разработчиков.Они должны договориться об одном (например, github ), чтобы все знали об этом.

Примечание: плагин git eclipse -> egit

1 голос
/ 20 февраля 2011

Когда я переместил команду из CVS в SVN, почти все в офисе были в восторге: получить что-то близкое к наборам изменений было замечательно , больше не было бесконечных тегов до и после каждой проверки, и имелись некоторые смутно терпимые функциональность "переместить" была отличной. Варианты CVS для «перемещения» были ужасными и плохими, и SVN сделал недостатки достаточно маленькими, чтобы при необходимости переименовывать файлы. Нам удалось отбросить большинство наших пользовательских рецептов Makefile, потому что они больше не были нужны, SVN был намного лучше.

Не все пользователи привыкли к «каталогу как ветви» и «каталогу как теги» - теги были слишком изменчивыми, и ветви действительно не ощущались как отдельный трек разработки. (Эти пользователи были хорошими в CVS; я думаю, я был бы довольно расстроен, если бы кто-то поменял мой текстовый редактор на новомодную IDE, которая делает почти все лучше, но мои пальцы не знают.)

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

SVN действительно ставит своей целью быть "CVS сделано правильно". Но это так далеко.

Я предлагаю проводить больше времени с мерзавцем. Вы можете создать что-то похожее на ваш центральный репозиторий, используя bare-репозиторий для git. Затем настройте учетные записи ssh для всех ваших разработчиков и начните.

Вы могли бы посчитать полезным назначить одного человека, чтобы «владеть» главным хранилищем (вспомните о Линусе Торвальдсе), но это может быть огромным бременем для одного человека (вспомните о Линусе Торвальдсе :). Этот один человек мог выполнить всю работу git pull и исправить незначительные конфликты в локальном рабочем дереве, а затем git push в пустом хранилище на сервере, чтобы все остальные извлекли его снова. Каждый разработчик может выполнять эту работу индивидуально, и, вероятно, каждый должен, но вам может быть полезно по административным причинам запускать все проверки в «главном дереве» через одного или нескольких опытных разработчиков.

0 голосов
/ 21 февраля 2011

Я совершенно новичок в «Системе управления версиями дистрибутива» (DVCS) и «Централизованной системе управления версиями» (CVCS).Я как-то понял разницу между ними.В настоящее время в моем офисе мы используем хранилище CVS, которое очень старое, и меня просят перейти на любую новую версию.Я не знаю ничего, кроме резервного копирования репозиториев CVS (каталог / usr / local / cvsroot) и создания пользователей cvs, и я сделаю это с помощью инструмента webmin.

Я настоятельно рекомендую получить много опыта на и CVS, и на новом VCS, прежде чем пытаться выполнить преобразование репо.Я делал это три раза (CVS-> SVN, CVS-> Git-> Hg, SVN-> Hg), и это была не веселая работа, и вам необходимо детальное знание как CVS, так и целевого инструмента (и инструмента конвертации)).Особенно часть CVS-> AnythingOther была проблематичной, потому что было много реорганизации.

Разработчики подключаются к репозиториям cvs и делятся своими проектами, используя приложение Eclipse.* У SVN, Git и Hg есть плагины Eclipse, но я ничего не могу сказать о них, так как я их не использую.Но когда ваши коллеги-разработчики используют eclipse в качестве единственного клиента CVS, этот момент может стать большой проблемой, когда другие плагины работают недостаточно хорошо.Этот вопрос особенно проблематичен, так как замена известных инструментов может очень легко привести к смайликам.

Я рассмотрел SVN, который имеет некоторые преимущества и недостатки по сравнению с CVS.Я хотел бы выбрать CVCS вместо репозитория DVCS, чтобы у меня было хранилище в одном месте (потому что я думаю, что мне легко создавать резервные копии репозиториев).

Вы можете использовать централизованный рабочий процесс с любой DVCS, но вы не обязаны использовать централизованный.Здесь у нас есть центральный сервер Hg, на котором разработчики продвигают законченную работу.Централизованный рабочий процесс в основном состоит из центрального сервера с общими репозиториями, куда каждый может вытащить и нажать.

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

Я слышал, что GIT лучше всех и является репозиторием на основе DVCS.

Git - самый популярный.Я не говорю, что Git - это плохо, но на поле есть и другие хорошие инструменты.Посмотрите на выбор SCM для нового пользователя? для перестрелки SVN против Git против Mercurial.

Наконец, я пытаюсь спросить, может ли кто-нибудь объяснить мне, какна самом деле GIT работает.

http://hginit.com и http://gitimmersion.com - хорошие уроки для Hg и Git.

Я ожидаю вполне практического объяснения теории целых с использованием затменияи так далее, если возможно подключиться к git и есть ли способ хранить все репозитории централизованно, если нет, я должен получить на каждую машину и сделать резервную копию репозиториев?.

http://www.vogella.de/articles/EGit/article.htmlи http://www.vogella.de/articles/Mercurial/article.html покрывают плагины Git и Hg Eclipse.

...