Як створити для себе систему управління вихідним кодом?


23

Я програмую на своєму робочому столі в своєму офісі, але також іноді вдома в іншій кімнаті свого ноутбука і навіть вдалині від дому. Мені потрібно система, яка автоматично або на вимогу синхронізує мою роботу від однієї до іншої, якщо це потрібно.

У мене немає налаштування домашньої мережі, і, хоча я думаю, я міг би це зробити, це, можливо, буде питанням для іншої плати. Я думав про якусь систему, яка б зберігала вихідний код у хмарі, але я не знаю достатньо про це, щоб почати. Мені потрібен якийсь вільний чи дешевий спосіб це зробити.

Я працюю в .NET (фактично Windows Phone 7).


1
скористайтеся дроп-бокс, просто встановіть його на обох машинах і зробіть з ним. Його безкоштовно (до 2 Гб). Для вашої ситуації контроль над джерелом знаходиться над вершиною (IMHO).
Темна ніч

26
Контроль над джерелами ніколи не перебуває на вершині (IMHO)!
Mongus Pong

4
Щоб встановити та запустити Git, потрібно встановити <15 хвилин (залежно від пропускної здатності завантаження).
Mongus Pong

2
потрібно тривати <3 хвилини (залежно від пропускної здатності завантаження), щоб встановити та запустити робочу скриньку.
Темна ніч

4
DropBox - жахлива пропозиція! Це не належна система управління версіями, це обмін даними. Він має дуже неприємну звичку завантажувати та завантажувати зміни щоразу, коли ви зберігаєте файл і синхронізуєтесь з усіма іншими клієнтами в режимі реального часу, він повністю завантажує вашу машину, роблячи весь цей незамінний мережевий трафік, особливо якщо ви використовуєте щось, що створює артефакти в тому самому каталозі, що і в DropBox. Дізнайтеся та використовуйте Git або подібні DVCS.

Відповіді:


39

Найпростіший спосіб - це використовувати одну з онлайн-систем. Оформити замовлення GitHub або BitBucket . Щоб отримати додаткові відомості про Git або Mercurial, перегляньте відповідно до Git Reference та Hg Init .


Можливо, якщо всі машини мають підключення до Інтернету, але є й інші випадки використання. Наприклад, я зберігаю деякі сховища субверсії на флеш-накопичувачі USB, а деякі більші (не вихідний код - фотографії та речі) на зовнішньому жорсткому диску. Коли я щасливіший з переходом, я також, швидше за все, матимуть сховища Mercurial на флеш-накопичувачах USB. Одна з причин - я все ще використовую Windows XP для багатьох речей, але я ні за яких обставин цього не дозволяю (ноутбук або настільний ПК) в Інтернеті в наші дні.
Стів314

21
Приємна річ у розподілених системах управління версіями, як-от Git та Mercurial, полягає в тому, що ви можете працювати з вашим репо на місцевому рівні, а потім синхронізуватись з деяким центральним сервером, коли вам трапляється підключення до мережі. Здається, ідеальне рішення для ОП.
Мішель Тіллі

@Brandon - також працює для основного репо на зовнішньому накопичувачі, коли весь час його підключати - це біль.
Стів314

2
Пам'ятайте, що у BitBucket є безкоштовні приватні сховища (на відміну від GitHub), що, ймовірно, робить його кращим варіантом для ОП.
Кевін Яп

Причиною, що я не пропонував запустити його локально, було те, що він не звучав так, як йому було б зручно з цим, і сказав, що йому потрібен віддалений доступ до нього. Але очевидно, що найкраще / найбезпечніший спосіб роботи - локальний запуск та перехід до хмарного сховища.
Пітер Роуелл

7

Ви можете використовувати DVCS на зразок Git або Mercurial, які можуть створити локальний сховище, а потім встановити Dropbox і помістити папку проекту (включаючи папку сховища, звичайно) у папку, що випадає.

Dropbox буде обробляти синхронізацію, і він може працювати в режимі офлайн, якщо ви змінюєте лише в одному місці між синхронізацією.

BTW Dropbox за замовчуванням не відкриє ваші файли загальнодоступними, але ви все одно можете їх відкрити, якщо хочете.

EDIT

Щодо цілісності сховища у випадку, якщо Dropbox пропускає синхронізацію файлу або двох, ви можете створити головне сховище поза папкою Dropbox у своєму головному ПК та натиснути на нього. Тож якщо локальне репо в папці Dropbox зіпсується, просто відновіть з основного ПК. Але я не зазнав корупції у сховищах.



По суті те, що я роблю. Меркуріальні сховища на моєму робочому столі та ноутбуці, основне сховище в Dropbox, з якого я підштовхуюсь та витягуюсь.
Девід Торнлі

@David Я це роблю в зворотному порядку, основне репо в ПК, робота репо в Dropbox, включаючи файли вихідного коду, над якими я працюю.
Endy Tjahjono

@Endy Tjahjono: З вашого коментаря це звучить так, як ви робите свою роботу на одному комп’ютері. Я інколи використовую свій робочий стіл, а іноді і свій ноутбук, тому на одному з них він не працює.
Девід Торнлі

@ Повідомляю про свою помилку, я повинен був сказати "резервну копію" репо в основному ПК. Моє "головне" репо - це робота репо всередині папки, що випадає. Я просто натискаю на резервну репосту випадково з метою резервного копіювання.
Endy Tjahjono

6

Ось кілька коротких інструкцій щодо налаштування розподіленого VCS. Перевага використання git або mercurial полягає в тому, що вам не потрібно налаштовувати сервер, щоб він працював, оскільки репозиторій - це лише файлова система. Ви маєте локальний сховище на своєму комп’ютері поруч із кодом (у git є одна .gitпапка, а у mercurial - одна .hgпапка на шляху проекту).

Використання git

Крок 1. Завантажте та встановіть git. Для вікон ви можете використовувати TortoiseGit . Деякі примітки щодо налаштування тут .

Крок 2: Виконайте книгу спільноти git, щоб ініціалізувати локальний сховище для вашого проекту та взяти на себе репозиторій.

Крок 3: Щоб розмістити речі на "хмарі", що є github, ви можете пройти цей посібник .

Використання Mercurial

Крок 1: Завантажте і встановіть показник. Для вікон ви можете використовувати TortoiseHg .

Крок 2: Дотримуйтесь посібника для швидкого запуску, щоб створити сховище для вашого проекту та передати його на сховище.

Крок 3 Щоб розмістити речі на "хмарі", що є бітбукетом, ви можете пройти цей підручник .

Якщо ви працюєте над .NET, можливо, ви хочете використовувати Mercurial через (начебто) кращої підтримки в Windows на момент написання.


2

Як справедливо сказали @ peter-rowell та інші, найпростіший спосіб - це використовувати будь-який із DVCS, як Git, та відповідні онлайн-системи, такі як Github або Unfuddle. Я особисто використовую Git і Unfuddle.

Оскільки ви згадали, що підключення до Інтернету вдома також не є проблемою для вас, є ця нова Інтернет-програма IDE, яка працює в браузері і живе в хмарі. Я раніше не знав нічого подібного, але це виглядає дуже цікаво і класно. Хоча, я його мало використовував, але це круто.


Unfuddle - це чудова послуга. В основному це просто копія червоного кольору з деякими приємними налаштуваннями.
Кейо

2

Практично будь-який DVCS допоможе.

Найпопулярнішими є Git, mercurial та кілька інших; але мені дуже подобається викопність . Це єдиний (маленький!) Виконуваний, легко портативний, автономний, багатоплатформенний і включає вікі, веб-інтерфейс GUI, систему квитків, обробник документації тощо.


1
Bitbucket - це послуга, що забезпечує хостинг Mercurial.
Tamás Szelei

Спасибі. я знаю це; але імена заплутуються в моїй свідомості
Хав'єр

1

Я б запропонував варіант " Піч" . Його роблять ті ж самі люди, які роблять FogBugz і Stack Exchange. Тож це повинно бути досить добре, також він безкоштовний для трьох користувачів, на які я вірю. Шкала подібна до FogBugz, і обидва можуть бути інтегровані, так що ви також можете відслідковувати помилки та функції.

Так само, як Джоел сказав в одному зі своїх публікацій блогу, відстеження помилок та контроль над джерелами завжди є плюсом навіть для самотнього розробника.


Ну, можливо, він був безкоштовним для 3 користувачів, але зараз це 25 доларів за користувача на місяць. Все-таки здається класним продуктом.
Кібергербаліст

1

Якщо конфіденційність вашого коду не вирішена, Код Google може бути прийнятним рішенням. Він піклується про частину хостингу, і це безкоштовно та досить просто в налаштуванні. Він підтримує програму Subversion, Mercurial та Git, яку мають усі клієнти Windows. Він також інтегрується з ідентифікаторами Google, щоб ви могли легко додавати учасників до проекту. Я приймаю там свої хобі-проекти, використовуючи Mercurial. У мене встановлений клієнт TortoiseHg і на домашньому, і на робочому комп'ютері, тому я міг працювати над своїми проектами під час перерв.


Приємно! Дякуємо, що згадали про це - я ще не чув про Google Code.
Кібергербаліст

0

Це залежить від того, які ваші знання про налаштування сервера та який час ви готові вкласти.

Особисто я орендував невеликий віртуальний сервер у хостера та встановив веб-сервер Apache інтегрованого сховища Subversion (який я зараз перетворюю на git). Налаштування насправді не так вже й багато, і як тільки вона буде запущена, вам більше не доведеться про це турбуватися. Перевагою цієї установки є те, що ви не тільки зможете налаштувати сховище контролю версій, але й інші види матеріалів, до яких ви хочете отримати доступ звідки завгодно (наприклад, я встановив WIKI та трекер проблем).

Якщо це занадто багато накладних витрат, ви завжди можете використовувати вже запропоновані онлайн-системи, наприклад, GitHub.


0

Найпростіше, мабуть, звернутися до постачальника git, github має можливість оплатити приватний рахунок.

Але не забувайте про svn, він простий і простий у використанні. Ви можете встановити svn-сервер десь, щоб ви могли його отримати, можливо, на роботі. (І такий проект, як Visual svn сервер, робить це дуже просто у Windows.) В якості клієнта ви можете використовувати плагін Visual Studio або tortoisesvn.

Єдине, що вам потрібно пам’ятати, це те, що вам потрібно здійснити оновлення та оновити при переключенні комп’ютерів.


Я не думаю, що SVN - це правильна відповідь. Мені було легше налаштувати Mercurial, ніж SVN, і це краща система, ніж SVN. SVN марний без прямого підключення до центрального сховища, а в ОП є два комп'ютери, які, мабуть, не мають прямого зв’язку.
Девід Торнлі

Я не впевнений, svn легше, ніж розподілені альтернативи. Але оскільки він не може постійно дістатися до сервера, ви повинні бути дисциплінованими, коли хочете вийти на гілку. Але показ одного чоловіка рідко робити це все одно. І потрібно брати на себе зобов’язання, коли ви змінюєте комп’ютер, тож я згоден, що це не оптимально. Але це альтернатива. Я фактично працював так, перш ніж почав використовувати git. (Але з git легше помилитися).
Йоган

Моє припущення, що він пересуває ноутбук разом із ним, коли він йде на роботу, інакше це буде не простою настройкою, і Девід правильний.
Йоган

Час, необхідний для встановлення git або Hg repo ( git init), пару секунд. З підривом вам спочатку потрібен сервер, що набагато складніше, ніж просто запуск git/hg initу вашому каталозі. Я нетерплячий і лінивий, і Git закликає мене використовувати SCM, тому що це (злиття, ініціалізація, вчинення) так швидко і безболісно.
Кейо

0

Я використовую Beanstalk . Він відмінно працював для мене як особистого сервера SVN. У них також є Git хостинг, але я цього не пробував. У них є безкоштовний рахунок для початку, а потім ви можете перейти на платний рахунок при необхідності.


-2

Dropbox

Усі інші рішення є надмірними для ваших потреб:

Просто встановіть Dropbox на обох комп'ютерах.

Повноцінний контроль джерела приємний, але у вашій ситуації йому не потрібен IMHO .

Це найпростіший простий шлях -> ви просто закінчите автоматичну синхронізовану папку на стільки машин, скільки вам потрібно.


1
Ви можете використовувати Git разом з Dropbox. Дивіться stackoverflow.com/questions/1960799/…
Mongus Pong

4
У використанні керування джерелами немає нічого надмірного, особливо коли Git та HG так легко налаштувати. Я не думаю, що це важливо, що він єдиний розробник, якщо він пише виробничий код, йому потрібен контроль над джерелами.
richeym

Так, напевно, правильно. Я просто думаю, що для одного розробника його просто непотрібне і OTT, але чорт, це мій погляд.
Темна ніч

git init,, git add .- git commit -m "bla"це все, що вам потрібно знати, щоб зробити якийсь код. Не важко, і ви розумієте, що зможете повернути його. Звичайно, переваги набагато важливіші в команді, але мені подобається, що я можу повернутись до моменту часу. Можливість розгалужувати та приховувати, робить і мене більш продуктивним.
Кейо

Я чую, що у вашому висловлюванні в синхронізації в режимі реального часу у нього є базовий відкат. Так, це ніщо в порівнянні з повноцінним контролем джерела, але потім його майже "пожежа та забудь"
Darknight
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.