Вопрос новичка: VCS для работы и дома (писать код и на работе и дома, обновления переносить на флешке)

IDE, VCS и прочее

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Вопрос новичка: VCS для работы и дома

Сообщение Dreamer77 »

Доброго времени суток!

В очередной раз задался вопросом оптимизации своей програмистской деятельности.
На этот раз задача стоит в начале использования VCS.
Необходимо писать код на работе, а также в домашних условиях.
(Программа не свободная, т.ч. в интернет выкладывать не могу.)
Обновления (diff) переносить буду на флэшке.

Собствено вопрос -- как все это правильнее организовать?
Язык программирования Fortran (хотя вряд ли это суть как важно).
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
kosmonaFFFt
Сообщения: 183
ОС: win 7, Kubuntu 10.10

Re: Вопрос новичка: VCS для работы и дома

Сообщение kosmonaFFFt »

Я бы порекомендовал mercurial - удобная распределенная децентрализованная система контроля версий, не требуется ставить и настраивать сервер, на флешке можно носить весь репозиторий... :)

Есть еще git, но лично мне он не нравится отсутствием адекватного UI для работы с репозиторием (для mercurial есть tortoisehg).
Спасибо сказали:
aumit
Сообщения: 28

Re: Вопрос новичка: VCS для работы и дома

Сообщение aumit »

Удобней всего использовать vpn, и не таскать все на флешке.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение sash-kan »

Dreamer77 писал(а):
24.11.2011 23:28
Собствено вопрос -- как все это правильнее организовать?
1. есть ssh-доступ к какому-нибудь компьютеру из обоих мест?
1.1. создаёте там репозиторий:
user@shared $ cd && git init --bare repo.git

1.2. подключаетесь к нему (аналогично на работе и дома):
$ mkdir local_repo && cd local_repo && git clone user@shared:repo.git .

1.3. profit

2. нет такого компьютера?
2.1. создаёте репозиторий на флэшке:
$ cd /mnt/flash && git init --bare repo.git

2.2. подключаетесь к нему (аналогично на работе и дома):
$ mkdir local_repo && cd local_repo && git clone /mnt/flash/repo.git .

2.3. profit

p.s. /mnt/flash — каталог, в который монтируется содержимое флэшки
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: Вопрос новичка: VCS для работы и дома

Сообщение Dreamer77 »

kosmonaFFFt
собственно что есть Mercurial, Git, SVN я знаю. А вот какой из них больше подходит неизвестно, т.к. ни с одним не работал. Спасибо за совет в сторону одного. Плюс также интересно будет посомтреть на UI.

aumit
VPN это конечно хорошо, НО:
- не всегда есть связь (например на праздники все компьютеры выключаются) + не всегда интернет есть
- VCS все равно нужен

sash-kan
Спасибо за подробное описание работы с Git.
Выпадает мне второй вариант действий, Хотя быть может смогу подключиться к рабочему компу по SSH.

Значит можно просто создать репозитарий на работе, клонировать его на флешку, затем с нее на домашний комп?
а после внесения изменений дома, провести ту же процедуру но в обратном порядке: клонировать с домашнего на флешку, с флэшки на рабочий?
(в любом случае еще почитаю про это соответствующую литературу)
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение drBatty »

Dreamer77 писал(а):
25.11.2011 18:19
А вот какой из них больше подходит неизвестно, т.к. ни с одним не работал.

я выбрал ртуть, потому-что она ИМХО самая простая и логичная. К тому-же она быстрая, и банки маленькие делает (bundle которые вы и будете носить на флешке)
Но лучше конечно по ssh (тоже умеет ессно)

Схема работы:
mkdir p
cd p
vim .hgignore #(в этот файл вписываются маски файлов, которые игнорируются. Например объектные файлы)
hg addr # добавить/удалить новые файлы
hg checkin # сообственно создать ревизию
Ну и всё в общем-то
отправить изменения hg push ssh://host/rep/
стянуть hg pull rep
склонировать hg clone rep
Всё просто. Трафика жрёт мало, важно если GPRS.

Dreamer77 писал(а):
25.11.2011 18:19
Значит можно просто создать репозитарий на работе, клонировать его на флешку, затем с нее на домашний комп?

в hd можно. Но лучше банку делать - она маленькая. С банками hg работает в точности так же, как с любым репозиторием, только readonly. Банка хороша тем, что не надо всё тащить, достаточно только все сегодняшние ревизии (фактически - только сегодняшняя ваша работа, и сжатая bzip2).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение serzh-z »

Dreamer77 писал(а):
25.11.2011 18:19
собственно что есть Mercurial, Git, SVN я знаю. А вот какой из них больше подходит неизвестно, т.к. ни с одним не работал.
Любой из перечисленных, кроме SVN. А если нет опыта работы с VCS, то лучше Bazaar - похоже на Git, но менее гибко и проще для новичка.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение drBatty »

да, где-то тут у нас уже был холивар mercurial vs git, почитайте...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: Вопрос новичка: VCS для работы и дома

Сообщение Dreamer77 »

спасибо за советы и комментарии.
тему противостояния git и mercurial я помнится читал, но давно это было.

Остался еще важный вопрос -- сильно ли плохо, если версии VCS разные?
Например дома: git-1.7.3.4, mercurial-1.7
а на работе: git-1.6.0.4, mercurial-1.1.2
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: Вопрос новичка: VCS для работы и дома

Сообщение Dreamer77 »

drBatty писал(а):
25.11.2011 18:51
в hd можно. Но лучше банку делать - она маленькая. С банками hg работает в точности так же, как с любым репозиторием, только readonly. Банка хороша тем, что не надо всё тащить, достаточно только все сегодняшние ревизии (фактически - только сегодняшняя ваша работа, и сжатая bzip2).

а к этому еще вопрос.
Если по ssh из дома подключаться тогда понятное дело.
Но если через флешку перекидывать, тогда по идее на флешке должна быть рабочая версия программы + записываем туда "банку" после рабочего дня.

В общем слабо пока представляю себе как это все организовывается.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение drBatty »

Dreamer77 писал(а):
25.11.2011 20:36
Остался еще важный вопрос -- сильно ли плохо, если версии VCS разные?
Например дома: git-1.7.3.4, mercurial-1.7
а на работе: git-1.6.0.4, mercurial-1.1.2

нормально. Это всегда так. Я не припоминаю несовместимости.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение sash-kan »

предупреждение: я говорю только о git·
Dreamer77 писал(а):
25.11.2011 18:19
Значит можно просто создать репозитарий на работе, клонировать его на флешку, затем с нее на домашний комп?
а после внесения изменений дома, провести ту же процедуру но в обратном порядке: клонировать с домашнего на флешку, с флэшки на рабочий?
после того, как репозиторий создан, его не нужно уже «откуда-то клонировать»·
склонировать — это значит «сделать клон», т. е. копию·

каждый клон — это самостоятельный репозиторий·
у каждого репозитория может быть от нуля до бесконечности «партнёров», в терминологии git — remote-ов·
после того, как вы сделали клон, внутри этого клона сразу же прописывается один remote (с дефолтным именем «origin»). тот самый репозиторий, с которого вы и «снимали» копию·
remote-ы можно добавлять, удалять, переименовывать·
никакого прямого влияния на репозиторий, в котором это делается, данные процедуры не оказывают·

с любым из remote-ов, который физически доступен на данный момент, можно производить множество действий·
наиболее употребительное из них — забрать из remote-а новые коммиты и слить их со своей текущей веткой:
$ git pull [имя remote-а]
следующее чуть менее употребительное действие — отправить созданные в локальном репозитории коммиты remote-у:
$ git push [имя remote-а]

доп. чтение: Перевод книги «Git Magic»
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Вопрос новичка: VCS для работы и дома

Сообщение sash-kan »

предупреждение: я говорю только о git·
Dreamer77 писал(а):
25.11.2011 20:42
Но если через флешку перекидывать, тогда по идее на флешке должна быть рабочая версия программы + записываем туда "банку" после рабочего дня.
можно совершенно по-разному организовать работу·

предложенный мною выше вариант — вполне работоспособен·

рабочую версию программы держать на флэшке совершенно не требуется·
достаточно, чтобы там был репозиторий (репозиторий и рабочая копия — это разные вещи)·



если у вас на работе уже есть git-репозиторий, тогда можете добавить в нём флэшку как remote·
для этого сначала создайте на флэшке чистый bare-репозиторий:
$ cd /mnt/flash && git init --bare repo.git
затем добавьте флэшку как remote в ваш рабочий репозиторий и залейте туда вашу текущую ветку (например, master):
$ cd /ваша/рабочая/копия/ && git remote add flashka /mnt/flash/repo.git && git push -u flashka master

дома делаете так же, как я уже описывал:
$ mkdir local_repo && cd local_repo && git clone /mnt/flash/repo.git .
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Ответить