modern DVCS
Nov. 3rd, 2010 07:18 pmя вот тут решил попробовать мигрировать на новомодные нынче git/hg, и возник вопрос – а в них как вообще чекаутить часть репозитория?
а то у меня то ли снега нету, то ли лыжи не едут, в общем, не вижу я этого в упор в документации, и всё…
зачем это нужно:
а) разделение прав доступа девелоперов к частям проекта, вплоть до отдельных файлов (сертификаты, например)
б) если репо более 10-20 Гб, чекаутить его весь неудобно, как бы быстро это ни происходило. да, я держу в версионнике медиа-контент, а не только текст. версионировать его отдельно – это можно чокнуться.
no subject
Date: 2010-11-03 05:22 pm (UTC)тоже мучился с этим, так и остался на svn, вроде говорят "ты не должен этого хотеть".
no subject
Date: 2010-11-03 05:25 pm (UTC)no subject
Date: 2010-11-03 05:24 pm (UTC)no subject
Date: 2010-11-03 05:25 pm (UTC)no subject
Date: 2010-11-03 05:32 pm (UTC)no subject
Date: 2010-11-03 05:37 pm (UTC)no subject
Date: 2010-11-03 05:48 pm (UTC)Сам не пользовал, мопед не мой.
no subject
Date: 2010-11-03 05:59 pm (UTC)no subject
Date: 2010-11-03 05:56 pm (UTC)no subject
Date: 2010-11-03 06:02 pm (UTC)ключевое слово "отдельно" - менеджить несколько репозиториев одновременно, имхо, неудобно. В каких багтрекерах это считается штатным режимом работы?
А если чекаутить весь репо сразу - несколько веток могут и на винт не влезть, например :)
no subject
Date: 2010-11-03 06:16 pm (UTC)no subject
Date: 2010-11-03 06:23 pm (UTC)А выбрасывать и считать их продуктом билда низзя, ибо билд, длящийся 3-4 суток, никого не устраивает.
no subject
Date: 2010-11-03 06:27 pm (UTC)То есть, git checkout branchA / git checkout branchB при отсутствии разницы между бранчами будет выполняться за 10 миллисекунд.
no subject
Date: 2010-11-03 06:30 pm (UTC)К скорости работы гита у меня претензий нет ;)
Вообще, спасибо за разговор)
no subject
Date: 2010-11-03 06:11 pm (UTC)no subject
Date: 2010-11-03 06:17 pm (UTC)no subject
Date: 2010-11-03 06:21 pm (UTC)В связи с этим вопрос - не бывает ли версионников, которые выполняют операции типа того же свича\мержа на сервере, а секьюрити управляют на границе "сервер-девелопер"?
no subject
Date: 2010-11-03 06:25 pm (UTC)no subject
Date: 2010-11-03 06:26 pm (UTC)no subject
Date: 2010-11-03 07:40 pm (UTC)no subject
Date: 2010-11-03 06:31 pm (UTC)no subject
Date: 2010-11-03 06:42 pm (UTC)а так вообще я на него поглядываю, да.
no subject
Date: 2010-11-04 07:22 am (UTC)no subject
Date: 2010-11-04 07:30 am (UTC)no subject
Date: 2010-11-04 08:33 am (UTC)Потом TFS - ужасен в плане поменять файлы снаружи. Мне часто нужно зайти в фаре и поменять vcproj руками а не через проперти. Потому что так быстрее. Надо сделать чекаут бла-бла.
Нельзя переместить несколько файлов сразу. Те я ожидаю что гуйня для TFS дает как минимум то же удобство что и хотя бы проводник. Но нифига.
С тасками там вообще гуи на уровне конца 90х. бе.
no subject
Date: 2010-11-04 08:35 am (UTC)no subject
Date: 2010-11-04 08:45 am (UTC)и можно же настроить, чтобы менять, не делая чекаут. для этого надо просто чекинить, оставляя файлы checked out. не знаю только, зачем это может быть нужно (пример с фаром не катит - возьми и сделай чекаут руками. всяко лучше, чем все файлы держать всё время чекаутными.)
а что такое hg?
no subject
Date: 2010-11-04 09:02 am (UTC)настроить - да можно. но там как-то все так не интуитивно понятно. сложно объяснить - но с TFS я каждый раз хлебаю горя. В случае с SVN там как-то было просто все чинить руками. Зашел в файлик какой-нить, поправил ченить - опять заработало.
а ну hg - это я имел ввиду Меркуриал.
no subject
Date: 2010-11-04 06:18 pm (UTC)Hg
Date: 2010-11-03 06:37 pm (UTC)В Hg для «чекаутить» ближе всего операция «клонировать». Так вот, клонировать можно только весь репозиторий целиком; при этом можешь создать 0 или 1 рабочую директорию — тоже целиком.
У нас для пунктов а) и б) отдельные репозитории. Обычный паттерн — для проекта MyProject помимо основного центрального репозитория создаётся ещё: а) репозиторий MyProject.Sandbox — это всякие прототипы и эксперименты, заказчику он не отдаётся, права на чтение/запись только у некоторых разработчиков; б) репозиторий MyProject.Externals, для сторонних библиотек и бинарного контента (желательно не «производного» от исходников). Последний подрубается как subrepo; если он становится слишком тяжёлым, не жалко просто сбросить его историю, не затрагивая историю основного репозитория.
>если репо более 10-20 Гб...
...то становится затруднительно его многократно клонировать, что считается обычной практикой в DVCS.
no subject
Date: 2010-11-04 07:04 am (UTC)