Re: Переезд на git
От: . Великобритания  
Дата: 02.08.11 16:20
Оценка: 1 (1)
Здравствуйте, elmal, Вы писали:

E>Имеем SVN репозиторий с множеством проектом, на которых настроено CI и тому подобное. Пытаемся это все перевести на git.

E>И всплывают сложности:
E>Как я понял, в git репозиторий можно вытащить исключительно какую то SVN ветку целиком. К подветкам извне не достучаться. Как вариант, если на CI сервере требуется вытащить всего один файл, или собрать только один модуль из проекта, то вариантов только 2:
E>1) Вытягивать все равно весь репозиторий целиком на CI сервере, а в результатах указывать относительный путь;
E>2) Создавать множество мелких репозиториев.
E>Первый вариант работает слишком медленно. Сам проект большой, clone делается долго, а нужна только одна маленькая директория, а то и вообще один файл. Во втором случае требуется много лишних действий, придется плодить эти репозитории как грибы.
E>Есть какие нибудь еще варианты? Можно ли как то вытащить не весь репозиторий, а только какие то папки оттуда? То есть на главном сервере иметь один репозиторий, а на локальном и CI сервере клонировать только какие то части?
Я не совсем понял use case. Зачем делать каждый раз clone? Он делается один раз, потом только pull изменений, это очень быстро даже для больших репо. Удивительно, но git забирает изменения из svn быстрее, чем сам svn.
Если нужна чистая копия (что обычно необходимо для CI), без всяких бинарей — "git clean -df" — приводит исходники в девственно чистое состояние.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Переезд на git
От: elmal  
Дата: 29.07.11 10:20
Оценка:
Имеем SVN репозиторий с множеством проектом, на которых настроено CI и тому подобное. Пытаемся это все перевести на git.
И всплывают сложности:
Как я понял, в git репозиторий можно вытащить исключительно какую то SVN ветку целиком. К подветкам извне не достучаться. Как вариант, если на CI сервере требуется вытащить всего один файл, или собрать только один модуль из проекта, то вариантов только 2:
1) Вытягивать все равно весь репозиторий целиком на CI сервере, а в результатах указывать относительный путь;
2) Создавать множество мелких репозиториев.
Первый вариант работает слишком медленно. Сам проект большой, clone делается долго, а нужна только одна маленькая директория, а то и вообще один файл. Во втором случае требуется много лишних действий, придется плодить эти репозитории как грибы.
Есть какие нибудь еще варианты? Можно ли как то вытащить не весь репозиторий, а только какие то папки оттуда? То есть на главном сервере иметь один репозиторий, а на локальном и CI сервере клонировать только какие то части?
Re: Переезд на git
От: Ziaw Россия  
Дата: 01.08.11 03:57
Оценка:
Здравствуйте, elmal, Вы писали:

E>Как я понял, в git репозиторий можно вытащить исключительно какую то SVN ветку целиком. К подветкам извне не достучаться. Как вариант, если на CI сервере требуется вытащить всего один файл, или собрать только один модуль из проекта, то вариантов только 2:

E>1) Вытягивать все равно весь репозиторий целиком на CI сервере, а в результатах указывать относительный путь;
E>2) Создавать множество мелких репозиториев.
E>Первый вариант работает слишком медленно. Сам проект большой, clone делается долго, а нужна только одна маленькая директория, а то и вообще один файл. Во втором случае требуется много лишних действий, придется плодить эти репозитории как грибы.

Насколько большой репозитарий? 200 метров у меня клонируются локально на виндовом ноуте 3-5 секунд, на сервере вообще не заметно. Не обязательно же каждый раз выкачивать все с удаленного сервера, заведите локальный (git clone --mirror/git remote update), его и клонируйте для CI, можно только последнюю ревизию.

E>Есть какие нибудь еще варианты? Можно ли как то вытащить не весь репозиторий, а только какие то папки оттуда? То есть на главном сервере иметь один репозиторий, а на локальном и CI сервере клонировать только какие то части?


Можно и так попытаться, но врядли получится быстрее локального клона. Для того, чтобы понять, стоит ли, надо знать время за которое делается локальный клон.
Re[2]: Переезд на git
От: elmal  
Дата: 02.08.11 16:34
Оценка:
Здравствуйте, ., Вы писали:

.>Я не совсем понял use case. Зачем делать каждый раз clone? Он делается один раз, потом только pull изменений, это очень быстро даже для больших репо. Удивительно, но git забирает изменения из svn быстрее, чем сам svn.

Хадсон именно clone и делает. Времени нет ни черта поглубже поковыряться, но с наскоку не получилось.
Re[2]: Переезд на git
От: elmal  
Дата: 02.08.11 16:46
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Насколько большой репозитарий? 200 метров у меня клонируются локально на виндовом ноуте 3-5 секунд, на сервере вообще не заметно. Не обязательно же каждый раз выкачивать все с удаленного сервера, заведите локальный (git clone --mirror/git remote update), его и клонируйте для CI, можно только последнюю ревизию.

Метров 500 будет. Если заведу локальный, придется регулярно скрипты писать чтоб синкался по расписанию или еще как, что очень не нравится.

Z>Можно и так попытаться, но врядли получится быстрее локального клона. Для того, чтобы понять, стоит ли, надо знать время за которое делается локальный клон.

Если с историей, то полчаса. Но проблема похуже есть. Репозиторий завели для проекта целиком, а там и клиент и сервер. Сервер тоже из подпроектов состоит, которые нужно собирать только тогда, когда именно они меняются, иначе пока билд сделается, можно пообедать сходить (да и при каждом коммите будет одновременно компиляция 10 проектов, основанных на одних и тех же исходниках). В SVN это не проблема была, из CI доставали только те части, которые требовались. А тут — либо репозиторий целиком, либо ни черта. А просто заимпортить в git часть svn репозитория проблематично, получается только с потерей истории и бранчей.
Пока вообще думаю переезд на git отложить, увы, граблей оказалось гораздо больше, чем рассчитывал, минусы пока перекрывают плюсы.
Re[3]: Переезд на git
От: Аноним  
Дата: 08.08.11 16:47
Оценка:
А зачем переходить с мэйнстрима на андеграунд? Гуи нет, то что есть это спагети, плагинов под IDE по факту то же нет, работаю из консоли, сама консоль при включенном антивирусе то же периодически отваливается и это ни как не лечиться кроме как перезагрузкой винды, процесс попадания кода в конечный репозитарий содержит в три раза больше шагов чем в subversion.
Re[4]: Переезд на git
От: elmal  
Дата: 11.08.11 11:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А зачем переходить с мэйнстрима на андеграунд? Гуи нет, то что есть это спагети, плагинов под IDE по факту то же нет, работаю из консоли, сама консоль при включенном антивирусе то же периодически отваливается и это ни как не лечиться кроме как перезагрузкой винды, процесс попадания кода в конечный репозитарий содержит в три раза больше шагов чем в subversion.

GUI есть, интеграция с IDE прекрасная. Смысл — хочется нормальной работы с бранчами. В SVN приходится все делать в транке, так как создание бранча несколько напряжно. В Git на тестовом проекте поигрался — великолепно. Плюс дополнительно хочется иметь резервную копию актуальных исходников на случай, если что то случится с сервером (а то помню ситуацию, когда на 3 дня амазон лег, и работа очень сильно замедлилась, а лег он блин в черти какое загруженное время).
Re[5]: Переезд на git
От: Аноним  
Дата: 11.08.11 19:17
Оценка:
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, Аноним, Вы писали:



E>GUI есть, интеграция с IDE прекрасная.

В какой IDE Вы работаете?
Re[6]: Переезд на git
От: elmal  
Дата: 12.08.11 05:08
Оценка:
Здравствуйте, Аноним, Вы писали:

E>>GUI есть, интеграция с IDE прекрасная.

А>В какой IDE Вы работаете?
IDEA, XCode 4
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.