LINUX.ORG.RU
ФорумTalks

Git vs Mercurial


0

0

Кто из них умеет такое?

Есть три компьютера, на которых разрабатывается один и тот же проект, одним и тем же человеком. Периодически нужно синхронизировать все куски работы вместе. Умеет ли какая-то из этих двух систем такое из коробки? То бишь, на одной машине делается некий hg sync, и оно тянет себе все изменения из остальных машин, если надо — дает возможность устранить конфликты, после чего заставляет остальные машины сделать то же самое.

Если из коробки нет, придется припахивать SSH и хитрые шеллскрипты (и наверняка к Mercurial, раз особой разницы нет).

★★★★★

Ответ на: комментарий от t184256

Я?! Не может быть.

Ну и кроме того, мои убеждения (читай религия :)) и опыт говорят либо за Mercurial, который я знаю, либо за Git, который имеет и умеет практически все то же самое. Bzr — это темная лошадка скорее.

shimon ★★★★★ ()

Не проще ли через Dropbox сразу держать папки с проектами синхронихированными?

Vit ★★★★★ ()

подозреваю, что умеют оба, через какой-нибудь add remote repoxyz && pull repoxyz master, и даже наверное настроить чтобы оно работали просто по pull (http://justaddwater.dk/2009/08/23/how-to-add-git-pull-shortcut-to-different-g...) но вопрос а нафига?

чем обычная схема с мастер-репозиторием и двумя остальными, которые в него пушат, не подходит?

volh ★★ ()

Я для этой цели mercurial использую (вообще, рабочих репозиториев штук 10, разработка ведётся на трёх-четырёх из них), но он тут от git, ИМХО, ничем не отличается.

Доступ к удалённым репозиториям обычно по sshfs. Только один центральный - по http гоняется.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

>Доступ к удалённым репозиториям обычно по sshfs.

И как? Я раньше часто так работал, но онннооооо таккк мееееееееедленнноооо.

volh ★★ ()
Ответ на: комментарий от KRoN73

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

volh ★★ ()
Ответ на: комментарий от volh

>И как? Я раньше часто так работал, но онннооооо таккк мееееееееедленнноооо.

На 16Мбит канале лимитируется каналом. На гигабитке качается где-то под 15Мбайт/сек. Конечно, в случае широкого канала это втрое медленнее, чем NFS, но для git/mercurial хватает с огромным запасом :) А для каналов меньше ста мегабит разницы просто не будет заметно...

KRoN73 ★★★★★ ()
Ответ на: комментарий от volh

>да и какой смысл в sshfs, если можно разрабатывать локально, а потом пушить по тому же ssh?

А разработка и ведётся локально. Просто таких «локальных» мест несколько :)

разве что если хочется править сразу удаленный репозиторий


Как думаешь, если у меня более десятка активных репозиториев, а правятся 3-4 из них - это с чем связано? ;)

...

Например, классическая схема:
- Боевой сервер.
- Тестовый сервер, являющийся точной копией боевого для проверок и тестов перед выкладыванием.
- Рабочий сервер, где происходит написание нового кода или глубокая правка старого.

Всё это - удалённое. Разнесено на две машины. Репозитории push/pop-ают по дефолту в указанной иерархии (т.е. pop на рабочем выдернет изменения тестового, а push на тестовом отправит изменения на боевой).

А ещё, например, есть домашняя машина, которая периодически дёргает все вышеописанные репозитории, например, для работы, когда не будет Интернета :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

>Как думаешь, если у меня более десятка активных репозиториев, а правятся 3-4 из них - это с чем связано? ;)

Специализация?

Но все равно, что по sshfs подключать нужный сервер и править, что править в локальном репозитории нужный бранч и пушить его на нужный сервер, я преимуществ первого не замечаю.

volh ★★ ()
Ответ на: комментарий от volh

>я преимуществ первого не замечаю.

1. Настройки локального сервера и удалённого могут весьма отличаться.
2. Базы данных. Не всегда удобно перекачивать на локальную машину гигабайты удалённой БД для того, чтобы работать со свежими данными.
3. Картинки, файлы и прочие ресурсы - то же самое, что в пункте 2 :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

> Я для этой цели mercurial использую (вообще, рабочих репозиториев штук 10, разработка ведётся на трёх-четырёх из них), но он тут от git, ИМХО, ничем не отличается.

Да, но как ты задачку решаешь? Делаешь pull на каждом руцями?

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

Проектик-то джаст фор май фан...

shimon ★★★★★ ()
Ответ на: комментарий от shimon

>Да, но как ты задачку решаешь? Делаешь pull на каждом руцями?

Да.

Мне это чуть геморно — я могу банально не упомнить, на каком компе и при каких обстоятельствах я сделал очередной кусок работы


Хм. Сделал кусок работы - сделал коммит. На то оно и VCS.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

> Да.

Э, это я и сам могу. А вот чтобы автоматом на всех. :)

Хм. Сделал кусок работы - сделал коммит. На то оно и VCS.


Да, да, а потом сводить вместе деревья.

shimon ★★★★★ ()
Ответ на: комментарий от shimon

>Да, да, а потом сводить вместе деревья.

При частых коммитах это не проблема.

KRoN73 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.