modern DVCS

Nov. 3rd, 2010 07:18 pm
wizzard: (Default)
[personal profile] wizzard

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

а то у меня то ли снега нету, то ли лыжи не едут, в общем, не вижу я этого в упор в документации, и всё…

зачем это нужно:
а) разделение прав доступа девелоперов к частям проекта, вплоть до отдельных файлов (сертификаты, например)
б) если репо более 10-20 Гб, чекаутить его весь неудобно, как бы быстро это ни происходило. да, я держу в версионнике медиа-контент, а не только текст. версионировать его отдельно – это можно чокнуться.

Date: 2010-11-03 05:22 pm (UTC)
From: [identity profile] dkrnl.livejournal.com
а в них как вообще чекаутить часть репозитория?
тоже мучился с этим, так и остался на svn, вроде говорят "ты не должен этого хотеть".

Date: 2010-11-03 05:24 pm (UTC)
From: [identity profile] metaclass.livejournal.com
В меркуриале этого нет.

Date: 2010-11-03 05:32 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Делай отдельные репо, увы.

Date: 2010-11-03 05:37 pm (UTC)

Date: 2010-11-03 05:48 pm (UTC)
From: [identity profile] gds.livejournal.com
вдобавок к сказанному, в меркуриале есть расширения, позволяющие работать с пачками репозиториев: http://mercurial.selenic.com/wiki/Subrepositories?action=show&redirect=subrepos
Сам не пользовал, мопед не мой.

Date: 2010-11-03 05:59 pm (UTC)
From: [identity profile] dkrnl.livejournal.com
сабрепы меркуриала это не совсем то, они полезны к примеру со сторонними библиотеками, отдельными папками.

Date: 2010-11-03 05:56 pm (UTC)
From: [identity profile] lionet.livejournal.com
А почему версионировать медиа-контент — чокнуться? Зачекаутил один раз и версионируй сколько влезет. В git это быстро.

Date: 2010-11-03 06:16 pm (UTC)
From: [identity profile] lionet.livejournal.com
Ветки в том же git переключаются, а не хранятся в копиях. Переключение зело быстро.

Date: 2010-11-03 06:27 pm (UTC)
From: [identity profile] lionet.livejournal.com
Свитч бранча в git не делает diff тех файлов, про которые известно, что они не изменились между свитчующимися бранчами.

То есть, git checkout branchA / git checkout branchB при отсутствии разницы между бранчами будет выполняться за 10 миллисекунд.

Date: 2010-11-03 06:17 pm (UTC)
From: [identity profile] lionet.livejournal.com
С правами доступа в _D_VCS традиционно не заморачиваются. Ибо архитектурно неприятно.

Date: 2010-11-03 06:25 pm (UTC)
From: [identity profile] lionet.livejournal.com
Примерно то, что тебе нужно — svn, perforce, clearcase ;)

Date: 2010-11-03 07:40 pm (UTC)
From: [identity profile] kurilka.livejournal.com
есть gitosis, но у нас очень несложное разделение прав (релизят ответственные)

Date: 2010-11-03 06:31 pm (UTC)
From: [identity profile] 109.livejournal.com
а чем плох ms team server?

Date: 2010-11-04 07:22 am (UTC)
From: [identity profile] ens-a-se.livejournal.com
о, это наверное самое сложное и капризное изобретение такого рода. там есть почти все - но работает хуже чем хотелось бы. тот же бранчинг - это просто капец.

Date: 2010-11-04 07:30 am (UTC)
From: [identity profile] 109.livejournal.com
а конкретнее? в чём капец?

Date: 2010-11-04 08:33 am (UTC)
From: [identity profile] ens-a-se.livejournal.com
Если сделать что-то не так то он говорит ужасные ошибки. Например, как то раз я переместил папку в ветке unstable и жил и радовался. Потом надо было забранчить в ветку stable - сразу куча ругани, надо думать, разбираться и тп. С hg проще.
Потом TFS - ужасен в плане поменять файлы снаружи. Мне часто нужно зайти в фаре и поменять vcproj руками а не через проперти. Потому что так быстрее. Надо сделать чекаут бла-бла.
Нельзя переместить несколько файлов сразу. Те я ожидаю что гуйня для TFS дает как минимум то же удобство что и хотя бы проводник. Но нифига.
С тасками там вообще гуи на уровне конца 90х. бе.

Date: 2010-11-04 08:35 am (UTC)
From: [identity profile] ens-a-se.livejournal.com
понятно, что со временем привыкаешь к нему. Но опенсорсные штуки и удобнее и проще. честно. порог вхождения на порядок ниже

Date: 2010-11-04 08:45 am (UTC)
From: [identity profile] 109.livejournal.com
ха, претензии к гуйне? когда у других вообще гуя нет?

и можно же настроить, чтобы менять, не делая чекаут. для этого надо просто чекинить, оставляя файлы checked out. не знаю только, зачем это может быть нужно (пример с фаром не катит - возьми и сделай чекаут руками. всяко лучше, чем все файлы держать всё время чекаутными.)

а что такое hg?

Date: 2010-11-04 09:02 am (UTC)
From: [identity profile] ens-a-se.livejournal.com
там есть гуйня - Tortoise SVN/Mercurial. Там фича в том что используются существующие тулы для просмотра файлов - проводник. А если под фаром то можно прямо в консоль.
настроить - да можно. но там как-то все так не интуитивно понятно. сложно объяснить - но с TFS я каждый раз хлебаю горя. В случае с SVN там как-то было просто все чинить руками. Зашел в файлик какой-нить, поправил ченить - опять заработало.
а ну hg - это я имел ввиду Меркуриал.

Date: 2010-11-04 06:18 pm (UTC)
From: [identity profile] 109.livejournal.com
спасибо, попробую. а то TFS слишком много ресурсов жрёт.

Hg

Date: 2010-11-03 06:37 pm (UTC)
From: [identity profile] bik-top.livejournal.com
>в них как вообще чекаутить часть репозитория?

В Hg для «чекаутить» ближе всего операция «клонировать». Так вот, клонировать можно только весь репозиторий целиком; при этом можешь создать 0 или 1 рабочую директорию — тоже целиком.

У нас для пунктов а) и б) отдельные репозитории. Обычный паттерн — для проекта MyProject помимо основного центрального репозитория создаётся ещё: а) репозиторий MyProject.Sandbox — это всякие прототипы и эксперименты, заказчику он не отдаётся, права на чтение/запись только у некоторых разработчиков; б) репозиторий MyProject.Externals, для сторонних библиотек и бинарного контента (желательно не «производного» от исходников). Последний подрубается как subrepo; если он становится слишком тяжёлым, не жалко просто сбросить его историю, не затрагивая историю основного репозитория.

>если репо более 10-20 Гб...

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

Date: 2010-11-04 07:04 am (UTC)
From: [identity profile] zeux.livejournal.com
Есть еще одна проблема с медиа контентом - т.к. он типично не мержится принципиально, то при работе нужен централизованный сервер, раздающий локи (который не может быть git/hg), либо настолько грамотно спланированная работа, чтобы concurrent edits не возникали в принципе (думаю, так не бывает).

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 27th, 2026 09:09 am
Powered by Dreamwidth Studios