¿Cómo configuro un sistema de control de código fuente para mí?

23

Programa en mi escritorio en mi oficina, pero también a veces en casa en una habitación diferente en mi computadora portátil, e incluso fuera de casa. Lo que necesito es un sistema que sincronice mi trabajo de forma automática o bajo demanda de uno a otro, según sea necesario.

No tengo una configuración de red doméstica, y aunque supongo que podría hacerlo, esa sería una pregunta para otra placa, tal vez. He pensado en algún tipo de sistema que mantenga el código fuente en la nube, pero no sé lo suficiente para comenzar. Necesito una forma gratuita o barata de hacer esto.

Trabajo en .NET (Windows Phone 7, de hecho).

Ciberherbalista
fuente
1
use dropbox, simplemente instálelo en ambas máquinas y termine con él. Es gratis (hasta 2GB). Para su situación, el control de la fuente es exagerado (en mi humilde opinión).
Darknight
26
¡El control de la fuente nunca es exagerado (en mi humilde opinión)!
Mongus Pong
44
Se tarda <15 minutos (dependiendo del ancho de banda de descarga) para instalar y poner Git en funcionamiento.
Mongus Pong
2
Se tarda <3 minutos (dependiendo del ancho de banda de descarga) para instalar y poner en funcionamiento Dropbox.
Darknight
44
¡DropBox es una sugerencia terrible! No es un sistema de control de versiones adecuado, es para compartir datos. Tiene el hábito desagradable de cargar y descargar cambios cada vez que guarda un archivo y se sincroniza con todos los demás clientes en tiempo real , bloquea completamente su máquina haciendo todo este tráfico de red innecesario, especialmente si está utilizando algo que construye artefactos en el mismo directorio que está en DropBox. Aprenda y use Git o DVCS equivalente.

Respuestas:

39

La forma más fácil es usar uno de los sistemas en línea. Pedido GitHub o BitBucket . Para obtener más información sobre Git o Mercurial, consulte Referencia de Git y Hg Init , respectivamente.

Peter Rowell
fuente
Tal vez, si todas las máquinas tienen conexiones a Internet, pero hay otros casos de uso. Por ejemplo, mantengo algunos repositorios de subversión en una memoria flash USB, y algunos más grandes (no el código fuente - fotos y cosas) en un disco duro externo. Cuando me sienta más feliz con la transición, también es probable que tenga repositorios Mercurial en unidades flash USB. Una razón: sigo usando Windows XP para muchas cosas, pero en ningún caso lo permitiré (computadora portátil o de escritorio) en Internet en estos días.
Steve314
21
Lo bueno de los sistemas de control de versiones distribuidos como Git y Mercurial es que puede trabajar con su repositorio localmente y luego sincronizarlo con algún servidor central cada vez que tenga una conexión de red útil. Suena como la solución ideal para el OP.
Michelle Tilley
@Brandon: también funciona para un repositorio principal en una unidad externa, cuando tenerlo conectado todo el tiempo es un fastidio.
Steve314
2
Recuerde, BitBucket tiene repositorios privados gratuitos (a diferencia de GitHub), lo que probablemente lo convierte en una mejor opción para el OP.
Kevin Yap
La razón por la que no sugerí ejecutarlo localmente fue porque no parecía que se sintiera cómodo con eso, y dijo que necesitaba acceso remoto. Pero, obviamente, ejecutar localmente y empujar a un repositorio en la nube es la mejor manera / la más segura de hacerlo.
Peter Rowell
7

Puede usar DVCS como Git o Mercurial que puede crear un repositorio local, luego instalar Dropbox y colocar la carpeta del proyecto (incluida la carpeta del repositorio, por supuesto) en la carpeta de Dropbox .

Dropbox manejará la sincronización y puede manejar la situación fuera de línea siempre que esté modificando solo en un lugar entre la sincronización.

BTW Dropbox no expondrá sus archivos al público de forma predeterminada, pero aún puede exponerlos si lo desea.

EDITAR

Con respecto a la integridad del repositorio en caso de que Dropbox no sincronice uno o dos archivos, puede crear un repositorio maestro fuera de la carpeta de Dropbox en su PC principal y presionarlo. Entonces, si el repositorio local dentro de la carpeta de Dropbox se corrompe, solo restaure desde la PC principal. Pero no he experimentado corrupción en el repositorio.

Endy Tjahjono
fuente
Esencialmente lo que hago. Repositorios mercuriales en mi computadora de escritorio y portátil, repositorio principal en Dropbox, desde donde presiono y extraigo.
David Thornley
@David Lo hago a la inversa, repositorio principal en PC, repositorio de trabajo en Dropbox, incluidos los archivos de código fuente en los que estoy trabajando.
Endy Tjahjono
@Endy Tjahjono: Suena por tu comentario como si hicieras tu trabajo en una computadora. A veces uso mi computadora de escritorio y mi computadora portátil, por lo que realmente no funciona tener mi repositorio principal en uno de ellos.
David Thornley
@ David, mi error, debería haber dicho repositorio de "copia de seguridad" en mi PC principal. Mi repositorio 'principal' es el repositorio de trabajo dentro de la carpeta de Dropbox. Solo presiono al repositorio de respaldo ocasionalmente para fines de respaldo.
Endy Tjahjono
6

Aquí hay algunas instrucciones rápidas sobre cómo configurar un VCS distribuido. El beneficio de usar git o mercurial es que no necesita configurar un servidor para que todo funcione, ya que el repositorio es solo un sistema de archivos. Tiene el repositorio local en su computadora al lado de su código (en git hay una .gitcarpeta y en mercurial hay una .hgcarpeta en la ruta del proyecto).

Usando git

Paso 1: descargue e instale git. Para Windows, es posible que desee utilizar TortoiseGit . Algunas notas de configuración están aquí .

Paso 2: siga el libro de la comunidad git para inicializar el repositorio local para su proyecto y comprométase con el repositorio.

Paso 3: para poner cosas en la "nube" que es github, puede seguir este tutorial .

Usando Mercurial

Paso 1: descargue e instale mercurial. Para Windows, es posible que desee utilizar TortoiseHg .

Paso 2: siga la guía de inicio rápido para crear el repositorio para su proyecto y comprometerse con el repositorio.

Paso 3 Para poner cosas en la "nube" que es bitbucket, puedes seguir este tutorial .

Si está trabajando en .NET, es posible que desee usar Mercurial debido a (una especie de) mejor soporte en Windows en el momento de la escritura.

Spoike
fuente
2

Como ya lo han dicho @ peter-rowell y otros, la forma más fácil es usar cualquiera de los DVCS como Git y los sistemas en línea correspondientes como Github o Unfuddle. Yo personalmente uso Git y Unfuddle.

Desde entonces, ha mencionado que obtener conexión a Internet en el hogar tampoco es un problema para usted, existe este nuevo IDE en línea que se ejecuta en el navegador y vive en la nube. No sabía que había algo disponible como este antes, pero esto se ve muy interesante y genial. Aunque, no lo he usado mucho, pero es genial.

Syed Aslam
fuente
Unfuddle es un gran servicio. Básicamente es solo una copia de Redmine con algunos ajustes agradables.
Keyo
2

Casi cualquier DVCS ayudaría.

Los más populares son Git, mercurial y algunos otros; pero realmente me gusta Fossil . Es un único (¡pequeño!) Ejecutable, fácilmente portátil, autónomo, multiplataforma e incluye wiki, GUI basada en web, sistema de tickets, manejador de documentación, etc.

Javier
fuente
1
Bitbucket es un servicio que proporciona alojamiento Mercurial.
Tamás Szelei
Gracias. Lo sabía; pero los nombres se enredan en mi mente
Javier
1

La opción que sugeriría sería Horno . Está hecho por las mismas personas exactas que hacen FogBugz y Stack Exchange. Por lo tanto, debería ser bastante bueno, también es gratis para hasta 3 usuarios, creo. La escala es similar a FogBugz y los dos se pueden integrar para que pueda realizar un seguimiento de errores y características también.

Al igual que Joel había dicho en una de sus publicaciones de blog, el seguimiento de errores y el control de la fuente siempre son una ventaja, incluso para un desarrollador solitario.

Maestro pródigo
fuente
Bueno, puede haber sido gratis para 3 usuarios, pero ahora cuesta $ 25 por usuario por mes. Aún así, parece un producto genial.
Cyberherbalist
1

Si la privacidad de su código no es un problema, entonces Google Code podría ser una solución viable. Se encarga de la parte de alojamiento y es gratis y bastante fácil de configurar. Es compatible con Subversion, Mercurial y Git, que tienen clientes Windows. También se integra con los ID de Google para que pueda agregar fácilmente contribuyentes al proyecto. Alojo mis proyectos de pasatiempo allí usando Mercurial. Tengo el cliente TortoiseHg instalado en la computadora de mi casa y del trabajo, para poder trabajar en mis proyectos durante los descansos.

Se cayó el sistema
fuente
¡Agradable! Gracias por mencionar esto: aún no había oído hablar de Google Code antes.
Cyberherbalist
0

Depende de cuál sea su conocimiento sobre la configuración de un servidor y a qué hora está dispuesto a invertir.

Personalmente, alquilé un pequeño servidor virtual de un proveedor de alojamiento e instalé un servidor web Apache y un repositorio Subversion integrado (que ahora estoy convirtiendo en git). La configuración realmente no es tanto y una vez que está en funcionamiento, ya no tiene que preocuparse por eso. Esta configuración tiene la ventaja de que no solo puede configurar un repositorio de control de versiones, sino también otro tipo de cosas a las que desea acceder desde cualquier lugar (he instalado un WIKI y un rastreador de problemas, por ejemplo).

Si eso es demasiado para usted, siempre puede usar los sistemas en línea ya sugeridos como GitHub.

perdian
fuente
0

Lo más fácil es probablemente ir con el proveedor de git, github tiene la posibilidad de pagar una cuenta privada.

Pero no te olvides de svn, es simple y fácil de usar. Puede instalar un servidor svn en algún lugar al que pueda acceder, probablemente en el trabajo. (Y un proyecto como Visual svn server hace que esto sea realmente fácil en Windows). Como cliente, podría usar un complemento de Visual Studio o tortoisesvn.

Lo único que debe recordar es que necesita confirmar y actualizar cuando cambia de computadora.

Johan
fuente
No creo que SVN sea la respuesta correcta aquí. Me resultó más fácil configurar Mercurial que SVN, y es un sistema mejor que SVN. SVN es inútil sin una conexión directa al repositorio central, y el OP tiene dos computadoras que aparentemente no tienen un enlace directo.
David Thornley
No estoy seguro, svn es más fácil que las alternativas distribuidas. Pero como no puede llegar al servidor en todo momento, debe ser disciplinado cuando desee bifurcarse. Pero un espectáculo de un solo hombre rara vez hace eso de todos modos. Y la necesidad de comprometerse es cuando cambias de computadora, así que estoy de acuerdo en que no es óptimo. Pero es una alternativa. De hecho, trabajé así antes de comenzar a usar git. (Pero con git es más fácil equivocarse).
Johan
Mi suposición es que él está moviendo la computadora portátil con él cuando va a trabajar, de lo contrario, esto no será una configuración fácil y David está en lo correcto.
Johan
Tiempo necesario para configurar un repositorio git o Hg ( git init), un par de segundos. Con subversion, primero necesita un servidor, que es mucho más difícil que simplemente ejecutarse git/hg initen su directorio. Soy impaciente y vago y Git me anima a usar SCM porque (fusionar, inicializar, comprometerse) es muy rápido e indoloro.
Keyo
0

Yo uso Beanstalk . Me ha funcionado muy bien como servidor SVN personal. También tienen alojamiento Git pero no lo he probado. Para empezar, tienen una cuenta gratuita, y luego puede graduarse a una cuenta paga si es necesario.

RationalGeek
fuente
-2

Dropbox

Todas las demás soluciones son excesivas para sus necesidades:

Simplemente instale Dropbox en ambas computadoras.

Un control completo de la fuente es bueno, pero en su situación no es necesario en mi humilde opinión .

Esta es la ruta más fácil y sencilla:> simplemente termina con carpetas sincronizadas automáticamente en todas las máquinas que desee.

Noche oscura
fuente
1
Puedes usar Git junto con Dropbox. Ver stackoverflow.com/questions/1960799/…
Mongus Pong
44
No hay nada exagerado sobre el uso del control de fuente, especialmente cuando Git y HG son tan fáciles de configurar. No creo que importe que sea un desarrollador exclusivo, si está escribiendo código de producción necesita control de fuente.
richeym
Sí, probablemente estés en lo correcto. Solo creo que para un solo desarrollador es simplemente innecesario y OTT, pero esa es mi opinión.
Darknight
git init, git add ., git commit -m "bla"Es prácticamente todo lo que necesita saber para cometer algún código. No es difícil y obtienes la tranquilidad de que puedes revertirlo. Por supuesto, los beneficios son mucho más importantes en un equipo, pero me gusta poder restablecer el punto en el tiempo es importante. Ser capaz de ramificarse y esconderse también me hace más productivo.
Keyo
Escucho lo que dices, en el cuadro desplegable su sincronización en tiempo real, tiene una reversión básica. Sí, es nada en comparación con un control de origen completo soplado, pero entonces su más o menos "fuego y olvidar"
Darknight