Como configurar um sistema de controle de código-fonte para mim?

23

Eu programo na minha área de trabalho no meu escritório, mas também às vezes em casa, em uma sala diferente do meu laptop, e até fora de casa. O que eu preciso é de um sistema que sincronize automaticamente ou sob demanda meu trabalho de um para o outro, quando necessário.

Eu não tenho uma configuração de rede doméstica e, embora eu ache que possa fazê-lo, isso seria uma pergunta para outra placa, talvez. Pensei em algum tipo de sistema que manteria o código-fonte na nuvem, mas não sei o suficiente sobre isso para começar. Eu preciso de um tipo de maneira gratuita ou barata de fazer isso.

Eu trabalho no .NET (Windows Phone 7, de fato).

Cyberherbalist
fonte
1
use o dropbox, basta instalá-lo nas duas máquinas e pronto. É grátis (até 2 GB). Para sua situação, o controle da fonte é exagerado (IMHO).
Darknight
26
O controle da fonte nunca está por cima (IMHO)!
Mongus Pong
4
Demora <15 minutos (dependendo da largura de banda do download) para instalar e instalar o Git.
Mongus Pong
2
são necessários <3 minutos (dependendo da largura de banda do download) para instalar e instalar o dropbox.
Darknight
4
DropBox é uma péssima sugestão! Não é um sistema de controle de versão adequado, é para compartilhar dados. Ele tem o hábito muito desagradável de fazer upload e baixar alterações sempre que você salva um arquivo e sincroniza com todos os outros clientes em tempo real , atrapalha completamente sua máquina, fazendo todo esse tráfego de rede desnecessário, especialmente se você estiver usando algo que cria artefatos no mesmo diretório que está no DropBox. Aprenda e use Git ou DVCS equivalente.

Respostas:

39

A maneira mais fácil é usar um dos sistemas online. Checkout GitHub ou BitBucket . Para mais informações sobre Git ou Mercurial, consulte Git Reference e Hg Init , respectivamente.

Peter Rowell
fonte
Talvez, se todas as máquinas tiverem conexões à Internet, mas houver outros casos de uso. Por exemplo, eu mantenho alguns repositórios do subversion em um pendrive USB e outros maiores (não o código fonte - fotos e outras coisas) em um disco rígido externo. Quando fico mais feliz com a transição, provavelmente também tenho repositórios Mercurial em unidades flash USB. Um motivo - eu ainda uso o Windows XP para muitas coisas, mas em nenhuma circunstância o permito (laptop ou desktop) na Internet atualmente.
31311 Steve314
21
O bom dos sistemas de controle de versão distribuído, como Git e Mercurial, é que você pode trabalhar com seu repositório localmente e sincronizar com um servidor central sempre que tiver uma conexão 'Net à mão. Parece a solução ideal para o OP.
Michelle Tilley
@Brandon - também funciona para um repositório principal em uma unidade externa, quando conectá-lo o tempo todo é uma dor.
31311 Steve314
2
Lembre-se, o BitBucket possui repositórios privados gratuitos (ao contrário do GitHub), o que provavelmente o torna uma opção melhor para o OP.
Kevin Yap
O motivo pelo qual não sugeri executá-lo localmente foi porque ele não parecia confortável com isso e disse que precisava de acesso remoto a ele. Mas, obviamente, executar localmente e enviar para um repositório na nuvem é o melhor / mais seguro caminho a percorrer.
Peter Rowell
7

Você pode usar o DVCS como Git ou Mercurial, que pode criar um repositório local, instalar o Dropbox e colocar a pasta do projeto (incluindo a pasta do repositório, é claro) na pasta do dropbox.

O Dropbox manipula a sincronização e pode lidar com a situação offline, desde que você esteja modificando apenas em um local entre a sincronização.

O Dropbox do BTW não expõe seus arquivos ao público por padrão, mas você ainda pode expô-los, se quiser.

EDITAR

No que diz respeito à integridade do repositório, caso o Dropbox perca a sincronização de um arquivo ou dois, você pode criar um repositório principal fora da pasta do Dropbox no seu PC principal e pressioná-lo. Portanto, se o repositório local dentro da pasta Dropbox for corrompido, basta restaurar a partir do PC principal. Mas não tive corrupção no repositório.

Endy Tjahjono
fonte
Essencialmente o que eu faço. Repositórios do Mercurial no meu desktop e laptop, repositório principal do Dropbox, do qual pressiono e puxo.
David Thornley
@ David Eu faço isso ao contrário, repositório principal no PC, repositório de trabalho no Dropbox, incluindo arquivos de código-fonte nos quais estou trabalhando.
Endy Tjahjono
@Endy Tjahjono: Parece do seu comentário que você faz seu trabalho em um computador. Às vezes, uso minha área de trabalho e, algumas vezes, meu laptop; portanto, não funciona realmente para ter meu repositório principal em um deles.
David Thornley
@ David meu erro, eu deveria ter dito repo 'backup' no meu PC principal. Meu repositório 'principal' é o repositório de trabalho dentro da pasta dropbox. Eu apenas envio ao repositório de backup ocasionalmente para fins de backup.
Endy Tjahjono
6

Aqui estão algumas instruções rápidas sobre como configurar um VCS distribuído. O benefício de usar git ou mercurial é que você não precisa configurar um servidor para que tudo funcione, pois o repositório é apenas um sistema de arquivos. Você tem o repositório local no seu computador próximo ao seu código (no git há uma .gitpasta e no mercurial há uma .hgpasta no caminho do projeto).

Usando git

Etapa 1: Baixe e instale o git. Para janelas, você pode querer usar o TortoiseGit . Algumas notas de configuração estão aqui .

Etapa 2: Siga o manual da comunidade git para inicializar o repositório local para o seu projeto e se comprometer com o repositório.

Etapa 3: para colocar as coisas na "nuvem" que é o github, você pode seguir este tutorial .

Usando o Mercurial

Etapa 1: Baixe e instale o mercurial. Para janelas, você pode querer usar o TortoiseHg .

Etapa 2: Siga o guia de Iniciação Rápida para criar um repositório para o seu projeto e se comprometer com o repositório.

Etapa 3 Para colocar as coisas na "nuvem" que é bitbucket, você pode seguir este tutorial .

Se você estiver trabalhando no .NET, convém usar o Mercurial por causa de (mais ou menos) melhor suporte no Windows no momento da gravação.

Spoike
fonte
2

Como o @ peter-rowell e outros já disseram com razão, a maneira mais fácil é usar qualquer um dos DVCS como Git e os sistemas online correspondentes como Github ou Unfuddle. Eu pessoalmente uso Git e Unfuddle.

Como você mencionou que a conexão à Internet em casa também não é um problema para você, existe esse novo IDE on-line que roda no navegador e vive na nuvem. Eu não sabia que havia algo assim disponível antes, mas isso parece muito interessante e legal. Embora eu não tenha usado muito, mas é legal.

Syed Aslam
fonte
Unfuddle é um ótimo serviço. Basicamente, é apenas uma cópia do redmine com alguns ajustes agradáveis.
Keyo 16/05
2

Quase qualquer DVCS ajudaria.

Os mais populares são Git, mercurial e alguns outros; mas eu realmente gosto de fósseis . É um único (pequeno!) Executável, facilmente portátil, independente, multiplataforma e inclui um wiki, GUI baseada na Web, sistema de ticket, manipulador de documentação, etc.

Javier
fonte
1
Bitbucket é um serviço que fornece hospedagem Mercurial.
Tamás Szelei
obrigado. eu sabia; mas os nomes se emaranhar em minha mente
Javier
1

A opção que eu sugeriria seria Kiln . É feito pelas mesmas pessoas exatas que fazem o FogBugz e o Stack Exchange. Portanto, deve ser muito bom, também é gratuito para até 3 usuários, acredito. A escala é como o FogBugz e os dois podem ser integrados para que você possa acompanhar os bugs e recursos também.

Assim como Joel havia dito em um de seus posts, o rastreamento de bugs e o controle de fontes são sempre uma vantagem, mesmo para um desenvolvedor solitário.

Prodigal Maestro
fonte
Bem, pode ter sido gratuito para três usuários, mas agora custa US $ 25 por usuário por mês. Ainda assim, parece um produto legal.
Cyberherbalist
1

Se a privacidade do seu código não é um problema, o Google Code pode ser uma solução viável. Ele cuida da parte de hospedagem e é gratuito e bastante fácil de configurar. Ele suporta Subversion, Mercurial e Git, todos com clientes Windows. Ele também se integra aos IDs do Google, para que você possa adicionar facilmente colaboradores ao projeto. Eu hospedo meus projetos de hobby lá usando o Mercurial. Eu tenho o cliente TortoiseHg instalado no meu computador doméstico e do trabalho, para que eu possa trabalhar nos meus projetos durante os intervalos.

Sistema caiu
fonte
Agradável! Obrigado por mencionar isso - eu ainda não tinha ouvido falar do Google Code.
Cyberherbalist
0

Depende do seu conhecimento sobre a configuração de um servidor e a que horas você está disposto a investir.

Pessoalmente, aluguei um pequeno servidor virtual de um host e instalei um servidor Web Apache e integrei um repositório Subversion (que agora estou convertendo para o git). A configuração realmente não é tão grande e, uma vez instalada e funcionando, você não precisa mais se preocupar com isso. Essa configuração tem a vantagem de você não apenas ser capaz de configurar um repositório de controle de versão, mas também outro tipo de material que deseja acessar de onde quer que esteja (instalei um WIKI e um rastreador de problemas, por exemplo).

Se isso é muito caro, você sempre pode usar os sistemas online já sugeridos, como o GitHub.

perdian
fonte
0

O mais fácil é provavelmente usar o provedor git, o github tem a possibilidade de pagar por uma conta privada.

Mas não se esqueça do svn, é simples e fácil de usar. Você pode instalar um servidor svn em algum lugar que possa alcançá-lo, provavelmente no trabalho. (E projetos como o servidor Visual svn tornam isso muito fácil no Windows.) Como cliente, você pode usar um plug-in do Visual Studio ou o tortoisesvn.

A única coisa que você precisa lembrar é que precisa confirmar e atualizar quando alterna de computador.

Johan
fonte
Eu não acho que SVN é a resposta certa aqui. Achei mais fácil configurar o Mercurial do que o SVN, e é um sistema melhor que o SVN. O SVN é inútil sem uma conexão direta com o repositório central, e o OP tem dois computadores que aparentemente não têm um link direto.
David Thornley
Não tenho certeza, svn é mais fácil do que as alternativas distribuídas. Mas como ele não pode acessar o servidor o tempo todo, você precisa ser disciplinado quando deseja ramificar. Mas um show de um homem raramente faz isso de qualquer maneira. E a necessidade de confirmar é quando você muda de computador, por isso concordo que não é o ideal. Mas é uma alternativa. Na verdade, eu trabalhei assim antes de começar a usar o git. (Mas com o git é mais fácil errar).
1428 Johan
Meu pressuposto é que ele está movendo o laptop com ele quando vai trabalhar, caso contrário, essa não será uma configuração fácil e David estará correto.
14279 Johan
Tempo necessário para configurar um repositório git ou Hg ( git init), alguns segundos. Com o subversion, você precisa primeiro de um servidor, o que é muito mais difícil do que apenas rodar git/hg initem seu diretório. Sou impaciente e preguiçoso, e o Git me incentiva a usar o SCM porque (mesclar, inicializar, confirmar) é muito rápido e indolor.
Keyo 16/05
0

Eu uso o Beanstalk . Funcionou muito bem para mim como um servidor SVN pessoal. Eles também têm hospedagem Git, mas eu não tentei. Eles têm uma conta gratuita para começar e, em seguida, você pode mudar para uma conta paga, se necessário.

RationalGeek
fonte
-2

Dropbox

Todas as outras soluções são exageradas para suas necessidades:

Basta instalar o Dropbox nos dois computadores.

Um controle completo da fonte é bom, mas na sua situação não é necessário o IMHO .

Este é o caminho mais simples e mais fácil de seguir -> você acaba com pastas sincronizadas automaticamente em quantas máquinas quiser.

Noite escura
fonte
1
Você pode usar o Git junto com o Dropbox. Veja stackoverflow.com/questions/1960799/…
Mongus Pong
4
Não há nada exagerado no uso do controle de origem, especialmente quando o Git e o HG são tão fáceis de configurar. Eu não acho que importa que ele seja um desenvolvedor único; se ele está escrevendo um código de produção, ele precisa de controle de origem.
Richeym
Sim, você provavelmente está correto. Eu só acho que, para um único desenvolvedor, é simplesmente desnecessário e OTT, mas diabos, essa é a minha opinião.
Darknight
git init, git add ., git commit -m "bla"É sobre tudo que você precisa saber para cometer algum código. Não é difícil e você fica com a ideia de que pode revertê-lo. É claro que os benefícios são muito mais importantes em uma equipe, mas eu gosto de poder voltar ao tempo certo. Ser capaz de ramificar e esconderijo me torna mais produtivo também.
Keyo 16/05
Eu ouvi o que você está dizendo, na caixa suspensa sua sincronização em tempo real, ele tem uma reversão básica. Sim é nada comparado a um controle de fonte soprado completo, mas então o seu muito bonito "fogo e esquecer"
Darknight