Вопрос новичка: VCS для работы и дома (писать код и на работе и дома, обновления переносить на флешке)
Модератор: Модераторы разделов
Вопрос новичка: VCS для работы и дома
Доброго времени суток!
В очередной раз задался вопросом оптимизации своей програмистской деятельности.
На этот раз задача стоит в начале использования VCS.
Необходимо писать код на работе, а также в домашних условиях.
(Программа не свободная, т.ч. в интернет выкладывать не могу.)
Обновления (diff) переносить буду на флэшке.
Собствено вопрос -- как все это правильнее организовать?
Язык программирования Fortran (хотя вряд ли это суть как важно).
В очередной раз задался вопросом оптимизации своей програмистской деятельности.
На этот раз задача стоит в начале использования VCS.
Необходимо писать код на работе, а также в домашних условиях.
(Программа не свободная, т.ч. в интернет выкладывать не могу.)
Обновления (diff) переносить буду на флэшке.
Собствено вопрос -- как все это правильнее организовать?
Язык программирования Fortran (хотя вряд ли это суть как важно).
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
- kosmonaFFFt
- Сообщения: 183
- ОС: win 7, Kubuntu 10.10
Re: Вопрос новичка: VCS для работы и дома
Я бы порекомендовал mercurial - удобная распределенная децентрализованная система контроля версий, не требуется ставить и настраивать сервер, на флешке можно носить весь репозиторий...
Есть еще git, но лично мне он не нравится отсутствием адекватного UI для работы с репозиторием (для mercurial есть tortoisehg).
Есть еще git, но лично мне он не нравится отсутствием адекватного UI для работы с репозиторием (для mercurial есть tortoisehg).
Re: Вопрос новичка: VCS для работы и дома
Удобней всего использовать vpn, и не таскать все на флешке.
Re: Вопрос новичка: VCS для работы и дома
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
при сбоях форума см.блог
при сбоях форума см.блог
Re: Вопрос новичка: VCS для работы и дома
kosmonaFFFt
собственно что есть Mercurial, Git, SVN я знаю. А вот какой из них больше подходит неизвестно, т.к. ни с одним не работал. Спасибо за совет в сторону одного. Плюс также интересно будет посомтреть на UI.
aumit
VPN это конечно хорошо, НО:
- не всегда есть связь (например на праздники все компьютеры выключаются) + не всегда интернет есть
- VCS все равно нужен
sash-kan
Спасибо за подробное описание работы с Git.
Выпадает мне второй вариант действий, Хотя быть может смогу подключиться к рабочему компу по SSH.
Значит можно просто создать репозитарий на работе, клонировать его на флешку, затем с нее на домашний комп?
а после внесения изменений дома, провести ту же процедуру но в обратном порядке: клонировать с домашнего на флешку, с флэшки на рабочий?
(в любом случае еще почитаю про это соответствующую литературу)
собственно что есть 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 для работы и дома
я выбрал ртуть, потому-что она ИМХО самая простая и логичная. К тому-же она быстрая, и банки маленькие делает (bundle которые вы и будете носить на флешке)
Но лучше конечно по ssh (тоже умеет ессно)
Схема работы:
mkdir p
cd p
vim .hgignore #(в этот файл вписываются маски файлов, которые игнорируются. Например объектные файлы)
hg addr # добавить/удалить новые файлы
hg checkin # сообственно создать ревизию
Ну и всё в общем-то
отправить изменения hg push ssh://host/rep/
стянуть hg pull rep
склонировать hg clone rep
Всё просто. Трафика жрёт мало, важно если GPRS.
в hd можно. Но лучше банку делать - она маленькая. С банками hg работает в точности так же, как с любым репозиторием, только readonly. Банка хороша тем, что не надо всё тащить, достаточно только все сегодняшние ревизии (фактически - только сегодняшняя ваша работа, и сжатая bzip2).
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Вопрос новичка: VCS для работы и дома
да, где-то тут у нас уже был холивар mercurial vs git, почитайте...
Re: Вопрос новичка: VCS для работы и дома
спасибо за советы и комментарии.
тему противостояния git и mercurial я помнится читал, но давно это было.
Остался еще важный вопрос -- сильно ли плохо, если версии VCS разные?
Например дома: git-1.7.3.4, mercurial-1.7
а на работе: git-1.6.0.4, mercurial-1.1.2
тему противостояния 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
Re: Вопрос новичка: VCS для работы и дома
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 для работы и дома
нормально. Это всегда так. Я не припоминаю несовместимости.
Re: Вопрос новичка: VCS для работы и дома
предупреждение: я говорю только о git·
склонировать — это значит «сделать клон», т. е. копию·
каждый клон — это самостоятельный репозиторий·
у каждого репозитория может быть от нуля до бесконечности «партнёров», в терминологии git — remote-ов·
после того, как вы сделали клон, внутри этого клона сразу же прописывается один remote (с дефолтным именем «origin»). тот самый репозиторий, с которого вы и «снимали» копию·
remote-ы можно добавлять, удалять, переименовывать·
никакого прямого влияния на репозиторий, в котором это делается, данные процедуры не оказывают·
с любым из remote-ов, который физически доступен на данный момент, можно производить множество действий·
наиболее употребительное из них — забрать из remote-а новые коммиты и слить их со своей текущей веткой:
$ git pull [имя remote-а]
следующее чуть менее употребительное действие — отправить созданные в локальном репозитории коммиты remote-у:
$ git push [имя remote-а]
доп. чтение: Перевод книги «Git Magic»
после того, как репозиторий создан, его не нужно уже «откуда-то клонировать»·
склонировать — это значит «сделать клон», т. е. копию·
каждый клон — это самостоятельный репозиторий·
у каждого репозитория может быть от нуля до бесконечности «партнёров», в терминологии git — remote-ов·
после того, как вы сделали клон, внутри этого клона сразу же прописывается один remote (с дефолтным именем «origin»). тот самый репозиторий, с которого вы и «снимали» копию·
remote-ы можно добавлять, удалять, переименовывать·
никакого прямого влияния на репозиторий, в котором это делается, данные процедуры не оказывают·
с любым из remote-ов, который физически доступен на данный момент, можно производить множество действий·
наиболее употребительное из них — забрать из remote-а новые коммиты и слить их со своей текущей веткой:
$ git pull [имя remote-а]
следующее чуть менее употребительное действие — отправить созданные в локальном репозитории коммиты remote-у:
$ git push [имя remote-а]
доп. чтение: Перевод книги «Git Magic»
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Вопрос новичка: VCS для работы и дома
предупреждение: я говорю только о git·
предложенный мною выше вариант — вполне работоспособен·
рабочую версию программы держать на флэшке совершенно не требуется·
достаточно, чтобы там был репозиторий (репозиторий и рабочая копия — это разные вещи)·
если у вас на работе уже есть 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 .
можно совершенно по-разному организовать работу·
предложенный мною выше вариант — вполне работоспособен·
рабочую версию программы держать на флэшке совершенно не требуется·
достаточно, чтобы там был репозиторий (репозиторий и рабочая копия — это разные вещи)·
если у вас на работе уже есть 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
при сбоях форума см.блог
при сбоях форума см.блог