Comment puis-je configurer un système de contrôle de code source pour moi-même?

23

Je programme sur mon bureau dans mon bureau, mais aussi parfois à la maison dans une autre pièce sur mon ordinateur portable, et même loin de chez moi. Ce dont j'ai besoin, c'est d'un système qui synchronise automatiquement ou à la demande mon travail de l'un à l'autre, au besoin.

Je n'ai pas de configuration de réseau domestique, et même si je suppose que je pourrais le faire, ce serait une question pour un autre conseil d'administration, peut-être. J'ai pensé à une sorte de système qui garderait le code source dans le cloud, mais je n'en sais pas assez pour commencer. J'ai besoin d'une sorte de moyen gratuit ou bon marché pour le faire.

Je travaille en .NET (Windows Phone 7, en fait).

Cyberherbaliste
la source
1
utilisez dropbox, installez-le simplement sur les deux machines et terminez avec. C'est gratuit (jusqu'à 2 Go). Pour votre situation, le contrôle des sources est exagéré (à mon humble avis).
Darknight
26
Le contrôle des sources n'est jamais exagéré (à mon humble avis)!
Mongus Pong
4
Il faut <15 minutes (selon la bande passante de téléchargement) pour installer et faire fonctionner Git.
Mongus Pong
2
cela prend <3 minutes (en fonction de la bande passante de téléchargement) pour installer et faire fonctionner Dropbox.
Darknight
4
DropBox est une terrible suggestion! Ce n'est pas un bon système de contrôle de version, c'est pour partager des données. Il a une habitude très désagréable de télécharger et de télécharger des modifications chaque fois que vous enregistrez un fichier et de les synchroniser avec tous les autres clients en temps réel , cela gêne complètement votre machine en faisant tout ce trafic réseau inutile, surtout si vous utilisez quelque chose qui crée des artefacts dans le même répertoire que celui de DropBox. Apprenez et utilisez Git ou un DVCS équivalent.

Réponses:

39

Le moyen le plus simple consiste à utiliser l'un des systèmes en ligne. Commander GitHub ou BitBucket . Pour plus d'informations sur Git ou Mercurial, consultez respectivement Git Reference et Hg Init .

Peter Rowell
la source
Peut-être, si toutes les machines ont des connexions Internet, mais il existe d'autres cas d'utilisation. Par exemple, je garde certains référentiels de subversion sur une clé USB et d'autres plus gros (pas le code source - photos et autres) sur un disque dur externe. Lorsque je serai plus satisfait de la transition, je suis également susceptible d'avoir des référentiels Mercurial sur des clés USB. Une raison - j'utilise toujours Windows XP pour beaucoup de choses, mais je ne le permettrai en aucun cas (ordinateur portable ou de bureau) sur Internet de nos jours.
Steve314
21
La bonne chose à propos des systèmes de contrôle de version distribués comme Git et Mercurial est que vous pouvez travailler avec votre dépôt localement, puis synchroniser avec un serveur central chaque fois que vous avez une connexion Internet à portée de main. Sonne comme la solution idéale pour l'OP.
Michelle Tilley
@Brandon - fonctionne également pour un dépôt principal sur un disque externe, quand le connecter tout le temps est pénible.
Steve314
2
Rappelez-vous, BitBucket a des référentiels privés gratuits (contrairement à GitHub), ce qui en fait probablement une meilleure option pour l'OP.
Kevin Yap
La raison pour laquelle je n'ai pas suggéré de l'exécuter localement était parce qu'il ne semblait pas être à l'aise avec cela, et il a dit qu'il avait besoin d'un accès à distance. Mais évidemment, s'exécuter localement et pousser vers un référentiel cloud est la meilleure façon / la plus sûre d'aller.
Peter Rowell
7

Vous pouvez utiliser DVCS comme Git ou Mercurial qui peut créer un référentiel local, puis installer Dropbox et placer votre dossier de projet (y compris le dossier du référentiel bien sûr) dans le dossier dropbox.

Dropbox gérera la synchronisation et il peut gérer la situation hors ligne tant que vous modifiez un seul endroit entre la synchronisation.

BTW Dropbox n'exposera pas vos fichiers au public par défaut, mais vous pouvez toujours les exposer si vous le souhaitez.

MODIFIER

Concernant l'intégrité du référentiel dans le cas où Dropbox ne synchronise pas un fichier ou deux, vous pouvez créer un référentiel maître en dehors du dossier Dropbox sur votre PC principal, et y pousser. Donc, si le dépôt local dans le dossier Dropbox est corrompu, restaurez simplement à partir du PC principal. Mais je n'ai pas connu de corruption de référentiel.

Endy Tjahjono
la source
Essentiellement ce que je fais. Référentiels Mercurial sur mon ordinateur de bureau et portable, référentiel principal dans Dropbox, vers lequel je pousse et tire.
David Thornley,
@David Je le fais en sens inverse, le référentiel principal sur PC, le référentiel de travail dans Dropbox, y compris les fichiers de code source sur lesquels je travaille.
Endy Tjahjono
@Endy Tjahjono: Il ressort de votre commentaire que vous travaillez sur un ordinateur. J'utilise parfois mon bureau et mon ordinateur portable parfois, donc ça ne marche pas vraiment d'avoir mon référentiel principal sur l'un d'eux.
David Thornley,
@David mon erreur, j'aurais dû dire repo «sauvegarde» sur mon PC principal. Mon référentiel «principal» est le référentiel de travail dans le dossier Dropbox. Je pousse simplement le dépôt de sauvegarde de temps en temps à des fins de sauvegarde.
Endy Tjahjono
6

Voici quelques instructions rapides sur la façon de configurer un VCS distribué. L'avantage d'utiliser git ou mercurial est que vous n'avez pas besoin de configurer un serveur pour que tout fonctionne car le référentiel n'est qu'un système de fichiers. Vous avez le dépôt local dans votre ordinateur à côté de votre code (dans git il y a un .gitdossier et dans mercurial il y a un .hgdossier dans le chemin du projet).

Utiliser git

Étape 1: Téléchargez et installez git. Pour les fenêtres, vous voudrez peut-être utiliser TortoiseGit . Certaines notes de configuration sont ici .

Étape 2: suivez le livre de la communauté git pour initialiser le référentiel local pour votre projet et vous engager dans le référentiel.

Étape 3: Pour mettre des choses sur le «cloud» qu'est github, vous pouvez suivre ce tutoriel .

Utilisation de Mercurial

Étape 1: Téléchargez et installez mercurial. Pour les fenêtres, vous voudrez peut-être utiliser TortoiseHg .

Étape 2: suivez le guide de démarrage rapide pour créer un référentiel pour votre projet et valider le référentiel.

Étape 3 Pour mettre les choses sur le "cloud" qu'est Bitbucket, vous pouvez suivre ce tutoriel .

Si vous travaillez sur .NET, vous voudrez peut-être utiliser Mercurial en raison (en quelque sorte) d'une meilleure prise en charge dans Windows au moment de l'écriture.

Spoike
la source
2

Comme l'ont déjà dit @ peter-rowell et d'autres à juste titre, le moyen le plus simple consiste à utiliser l'un des DVCS comme Git et les systèmes en ligne correspondants comme Github ou Unfuddle. J'utilise personnellement Git et Unfuddle.

Depuis, vous avez mentionné qu'obtenir une connexion Internet à la maison n'est pas non plus un problème pour vous, il y a ce nouvel IDE en ligne qui s'exécute dans le navigateur et vit sur le cloud. Je ne savais pas que quelque chose était disponible auparavant, mais cela semble très intéressant et cool. Bien que je ne l'ai pas beaucoup utilisé, mais c'est cool.

Syed Aslam
la source
Unfuddle est un excellent service. Fondamentalement, c'est juste une copie de redmine avec quelques jolis réglages.
Keyo
2

Presque n'importe quel DVCS aiderait.

Les plus populaires sont Git, mercurial et quelques autres; mais j'aime vraiment Fossil . C'est un (petit!) Exécutable unique, facilement portable, autonome et multi-plateforme, et comprend un wiki, une interface graphique Web, un système de ticket, un gestionnaire de documentation, etc.

Javier
la source
1
Bitbucket est un service d'hébergement Mercurial.
Tamás Szelei
Merci. je le savais; mais les noms s'emmêlent dans mon esprit
Javier
1

L'option que je suggérerais serait Kiln . Il est fabriqué par les mêmes personnes que FogBugz et Stack Exchange. Il devrait donc être assez bon, il est également gratuit pour jusqu'à 3 utilisateurs, je crois. L'échelle est similaire à FogBugz et les deux peuvent être intégrés afin que vous puissiez également garder une trace des bogues et des fonctionnalités.

Tout comme Joel l'avait dit dans l'un de ses articles de blog, le suivi des bogues et le contrôle des sources sont toujours un plus, même pour un développeur isolé.

Prodigal Maestro
la source
Eh bien, cela peut avoir été gratuit pour 3 utilisateurs, mais c'est maintenant 25 $ par utilisateur et par mois. Pourtant, semble être un produect cool.
Cyberherbalist
1

Si la confidentialité de votre code n'est pas aussi problématique, alors Google Code pourrait être une solution viable. Il s'occupe de la partie hébergement et il est gratuit et assez facile à configurer. Il prend en charge Subversion, Mercurial et Git, qui ont tous des clients Windows. Il s'intègre également aux identifiants Google afin que vous puissiez facilement ajouter des contributeurs au projet. J'y héberge mes projets de loisirs en utilisant Mercurial. J'ai le client TortoiseHg installé sur mon ordinateur personnel et professionnel, afin que je puisse travailler sur mes projets pendant les pauses.

Système hors service
la source
Agréable! Merci d'avoir mentionné cela - je n'avais pas encore entendu parler de Google Code auparavant.
Cyberherbalist
0

Cela dépend de vos connaissances sur la configuration d'un serveur et du temps que vous êtes prêt à investir.

Personnellement, j'ai loué un petit serveur virtuel auprès d'un hébergeur et installé un serveur Web Apache et intégré un référentiel Subversion (que je convertis maintenant en git). La configuration n'est vraiment pas si importante et une fois qu'elle est opérationnelle, vous n'avez plus à vous en soucier. Cette configuration a l'avantage que vous pouvez non seulement configurer un référentiel de contrôle de version, mais également d'autres types de choses auxquelles vous souhaitez accéder où que vous soyez (j'ai installé un WIKI et un outil de suivi des problèmes par exemple).

Si cela vous coûte trop cher, vous pouvez toujours utiliser les systèmes en ligne déjà suggérés comme GitHub.

perdian
la source
0

Le plus simple est probablement d'aller avec le fournisseur git, github a la possibilité de payer pour un compte privé.

Mais n'oubliez pas svn, il est simple et facile à utiliser. Vous pouvez installer un serveur svn quelque part où vous pouvez l'atteindre, probablement au travail. (Et un projet comme le serveur Visual svn rend cela très facile sous Windows.) En tant que client, vous pouvez utiliser un plugin Visual Studio ou tortoisesvn.

La seule chose dont vous devez vous souvenir est que vous devez valider et mettre à jour lorsque vous changez d'ordinateur.

Johan
la source
Je ne pense pas que SVN soit la bonne réponse ici. J'ai trouvé plus facile de configurer Mercurial que SVN, et c'est un meilleur système que SVN. SVN est inutile sans connexion directe au référentiel central, et l'OP a deux ordinateurs qui n'ont apparemment pas de lien direct.
David Thornley,
Je ne suis pas sûr, svn est plus facile que les alternatives distribuées. Mais comme il ne peut pas atteindre le serveur à tout moment, vous devez être discipliné lorsque vous souhaitez vous connecter. Mais un one man show le fait rarement de toute façon. Et la nécessité de s'engager est lorsque vous changez d'ordinateur, donc je conviens que ce n'est pas optimal. Mais c'est une alternative. En fait, j'ai travaillé comme ça avant de commencer à utiliser git. (Mais avec git, il est plus facile de se tromper).
Johan
Mon hypothèse est qu'il déplace l'ordinateur portable avec lui quand il va travailler, sinon ce ne sera pas une configuration facile et David a raison.
Johan
Temps nécessaire pour configurer un git ou un repo Hg ( git init), quelques secondes. Avec subversion, vous avez d'abord besoin d'un serveur, ce qui est beaucoup plus difficile que de simplement exécuter git/hg initdans votre répertoire. Je suis impatient et paresseux et Git m'encourage à utiliser SCM car il (fusion, initialisation, validation) est si rapide et indolore.
Keyo
0

J'utilise Beanstalk . Cela a très bien fonctionné pour moi en tant que serveur SVN personnel. Ils ont également un hébergement Git mais je ne l'ai pas essayé. Ils ont un compte gratuit pour commencer, et vous pouvez ensuite passer à un compte payant si nécessaire.

RationalGeek
la source
-2

Dropbox

Toutes les autres solutions sont exagérées pour vos besoins:

Installez simplement Dropbox sur les deux ordinateurs.

Un contrôle de source complet est agréable, mais dans votre situation, ce n'est pas nécessaire à mon humble avis .

C'est le chemin le plus simple et le plus simple à suivre -> vous vous retrouvez avec des dossiers auto-synchronisés sur autant de machines que vous le souhaitez.

Nuit noire
la source
1
Vous pouvez utiliser Git avec Dropbox. Voir stackoverflow.com/questions/1960799/…
Mongus Pong
4
Il n'y a rien d'exagéré dans l'utilisation du contrôle de code source, surtout lorsque Git et HG sont si faciles à configurer. Je ne pense pas qu'il soit important qu'il soit le seul développeur, s'il écrit du code de production, il a besoin du contrôle des sources.
richeym
Oui, vous avez probablement raison. Je pense juste que pour un seul développeur, c'est tout simplement inutile et OTT, mais diable c'est mon avis.
Darknight
git init, git add ., git commit -m "bla"Est tout ce que vous devez savoir pour commettre un code. Pas difficile et vous obtenez la tranquillité d'esprit que vous pouvez revenir en arrière. Bien sûr, les avantages sont beaucoup plus importants dans une équipe, mais j'aime pouvoir revenir au point dans le temps est important. Pouvoir se ramifier et se cacher me rend aussi plus productif.
Keyo
J'entends ce que vous dites, dans la boîte de dépôt sa synchronisation en temps réel, il a un retour en arrière de base. Oui, ce n'est rien comparé à un contrôle de source complet, mais c'est à peu près "feu et oublie"
Darknight