2008-12-01 11 views
15

Estoy aprendiendo a hacer cosas y quiero comenzar a usar algún tipo de control de versiones para una aplicación web.¿Mejor control de versión para una aplicación web de un solo hombre?

¿Cuál es el más adecuado para implementar una aplicación web de python o php por mi cuenta? Estoy usando Linux y tengo un servidor Linux.

Gracias!

+8

Enhorabuena por darse cuenta de que el control de versiones no es solo para compartir código entre múltiples desarrolladores: no muchas personas lo resuelven. – belugabob

Respuesta

18

SVN, pero tiene que ser capaz de desplegar fácilmente su aplicación web con SVN.

Dado que no siempre es una tarea simple, así que simplemente señalo this article que pueden ser de interés para su proyecto.

Principio general:

  • Configurar Apache en el servidor de desarrollo para que se recoge tus controladas a cabo copias de trabajo como subdominios separados. Al usar esto, simplemente puede hacer un checkout de su proyecto y automágicamente estará en funcionamiento. No es necesario tocar la configuración de Apache. Necesita un DNS wildcard entry para que todos los subdominios de dev.example.org vayan a su servidor de desarrollo.

El único problema con el uso local de la configuración de Apache anterior es el comodín de DNS. A menos que el servidor DNS de su red le haya asignado un nombre de host a su computadora de escritorio y usted pueda configurar el comodín allí, tendrá que conformarse con su dirección de host local. Puede instalar dnsmasq para actuar como un servidor de almacenamiento en caché de DNS local y poner el comodín en su propia máquina

  • Uso dnsmasq para que pueda lograr el mismo efecto en su propio equipo de desarrollo. De esta forma, puede desarrollar sus aplicaciones web localmente y no necesitará un servidor de desarrollo central. En mis ejemplos asumo que usa subversión para el control de su versión, pero funciona prácticamente igual con otros paquetes de control de versiones, como git o bazaar.

Nota: (Humor)
This other question on Subversion me permitió señalar a este artículo sobre publishing its (source-controlled) data into production, con probablemente en el diagrama más feo que he visto sobre el tema ;-)

diagram

5

SVN es genial.

0

SVN habría sido mi primera opción. Si tengo que tomar una segunda opción, iría a CVS.

+1

No puedo creer que alguien aún recomiende CVS. – Kibbee

+0

Es la SEGUNDA elección, ¿cuál es tu segunda opción? Aprenda a leer –

+0

No puedo hablar por Kibbee, y no estoy tan abajo en CVS como él, pero hay bastantes sistemas que pondría como segunda opción antes de CVS. Es realmente una tecnología vieja. –

0

Uno de los modelos más populares que hay hoy en día es Subversion. En general, es fácil configurar & configurar y es capaz de manejar múltiples plataformas.

14

Si no hubiera tropezado con git, sin duda habría ido con SVN. Habiendo dicho eso, recomendaría git.

+0

Está solo y quiere aprender control de fuente, git no parece ser la mejor opción para eso ... –

+4

El control de versión descentralizada es perfecto para un "equipo" de un solo hombre, especialmente porque elimina el servidor por separado . No uso git, así que no puedo decir lo útil que es en particular. Pero Bazar funcionaría bien, y es ridículamente fácil configurar – jalf

+0

@jalf: Git de hecho funciona tal como dices. –

0

SVN. Si uno no necesita acceso simultáneo (que es su caso), es MUY fácil de configurar ya que no se requiere ningún servidor. Definitivamente tu arma de elección.

+0

Hazte un favor y configura el servidor de todos modos. Al usar el archivo directo: // los métodos de acceso le causarán dolor en el futuro cuando intente convertirlo a un servidor porque alguien se unió a su equipo, etc. Además, el acceso remoto es tremendamente útil. – rmeador

+0

¿Cómo exactamente le causa dolor en el futuro? Hacer que el repositorio esté disponible a través de http (o ssh o lo que sea) es perfecto, sin ningún costo adicional, es tan simple como mover la carpeta del repositorio a otra ubicación. –

2

La respuesta realmente depende de su forma de pensar. Personalmente tuve problemas para cambiar a subversión de SourceSafe. Si vienes de microsoft shop, te sugiero usar SourceGear Vault, es gratis para < = 2 usuarios. Si vienes del área no microsoft, entonces sería preferible usar subversión. También por favor considere git si trabaja en Linux. HTH, válvula.

5

Hoy en día el bombo alrededor de DVCS.

Prefiero Bazaar.

Por su nombre, el soporte, el conjunto de características, y funciona bien en mi ventana $ máquina también.

+0

No olvide que "es fácil de configurar". En particular, ser capaz de enviar contenido a cualquier servidor FTP, sin tener que instalar un software especial, es realmente útil. – jalf

+0

de acuerdo - bzr es fácil de configurar, aprender e implementar con – orip

+0

En segundo lugar. Bazar es bueno! – l3dx

0

Estoy totalmente de acuerdo con SVN. La línea de comando SVN es bastante fácil también.

0

Aunque me gusta mucho svn, he encontrado mercurial útil para tener todo el repositorio localmente. (Lo mismo vale para git, pero su interfaz es un poco menos pulido en mi opinión.)

-1

Subversion es una buena opción. Para el cliente, está TortoiseSVN (http://tortoisesvn.tigris.org/) que se integra con el shell y le permite hacer cosas con un clic derecho en una carpeta. Para la integración con Visual Studio (supongo que ese es su entorno), hay VisualSVN (http://www.visualsvn.com/) y AnhkSVN (http://ankhsvn.open.collab.net/). Para el servidor hay un instalador de un clic que puede encontrar aquí (http://svn1clicksetup.tigris.org/) que hace la configuración en un abrir y cerrar de ojos. VisualSVN también tiene un servidor (gratuito) que puede usar que proporciona su propio acceso y seguridad web (en lugar de usar apache) y tiene un complemento de mmc para administrar/crear repositorios y usuarios.

+0

Intenta leer la pregunta. Él específicamente dice "PHP y Python en Linux". –

+0

Eché de menos el factor Linux, es suficiente. El control de versiones funciona igual independientemente del lenguaje de programación. No hay un cliente especial para PHP vs. Python, por lo que es un punto discutible. En cualquier caso, la subversión es una buena opción, ya que es fácil de configurar y fácil de usar. Como está en Linux, el binario "svn" es todo lo que necesita. Gracias por votarme. – Bil

8

Hoy en día, ciertamente iría con un sistema de control de versiones distribuidas. La configuración es más rápida ya que no necesita configurar un servidor de control de versiones y todo, todo lo que normalmente necesita hacer es inicializar un determinado directorio dentro de su cuadro de desarrollo para el control de la versión y listo. También parecen ser el camino a seguir en estos días. Si fuera 2001, recomendaría un sistema centralizado como Subversion. Pero es 2008, todos se están moviendo a sistemas distribuidos e interfaces de usuario y las herramientas de apoyo tienden a mejorar.

Aquí están algunas sugerencias para usted:

  • Darcs: Fácil de aprender y tiene todas las características que en general tendrá
  • Mercurial
  • Git: Potente. Puede tomar algún tiempo para entender pero evoluciona rápidamente

Los tres deben estar disponibles en su sistema operativo basado en Linux a través de las soluciones de administración de paquetes habituales.

2

Personalmente utilizo monotone, aprendiendo un DVCS es definitivamente el camino a seguir.

1

Para un trabajo de un solo hombre, casi cualquier sistema de control de revisión hará el trabajo. Es cuando te metes en varias personas, y luego en varios repositorios, donde comienzan a haber diferencias.

Dado que, iría con cualquier sistema de software libre que tu entorno de desarrollo soporte mejor. Veo a Subversion y Git mencionados y ambos son buenas opciones.

3

Estoy usando unfuddle.com y me encanta. Es gratis para una aplicación web de una sola persona

0

Una vez usé Perforce y quedé impresionado con ella. Hay versiones de GUI y línea de comandos y es compatible con Windows, Linux, Mac y Unix tanto para el servidor como para el cliente. Se integra con Eclipse y tiene API para escribir sus propias aplicaciones cliente (C/C++, Ruby, Perl, Python). Sin embargo, solo admite dos usuarios y cinco espacios de trabajo antes de que necesite comprar licencias (pero eso está dentro del alcance de esta pregunta) .

0

No puedo responder la pregunta como se me pidió, porque no desarrollo en un servidor Linux.

Pero quizás esta experiencia tenga una contraparte en el mundo de Linux.

Utilizo un servidor IIS local en mi LAN solamente (en realidad en una computadora portátil vieja que ya no viaja pero funciona como un pequeño servidor). Tengo VSS instalado en ese servidor también. Existe una integración entre el servidor IIS, las extensiones de FrontPage en ese servidor y el VSS.

El resultado es que puedo usar FrontPage para crear y editar mi sitio y crear una imagen de desarrollo que siempre está respaldada en VSS, y puedo verificar, registrar y hacer todo eso desde FrontPage.

Ahora, la forma en que publico es que aprovecho la capacidad de uso compartido de VSS, así que tengo una imagen de implementación que comparte con el proyecto que en realidad es un sitio web de IIS. Tengo un directorio de implementación de imágenes al que puedo transferir el último material registrado (el material que no ha cambiado no está actualizado). A continuación, despliegue la imagen de implementación en el sitio web público alojado mediante FTP (nuevamente, solo transfiero archivos nuevos y actualizados).

Presento todos estos detalles para sugerir cuál podría ser el caso de uso de interés, aunque se necesita un enfoque de solución diferente con Linux.

Si no estaba usando una herramienta que se integre con el servidor web y también el control de fuente en el servidor, podría hacer algo similar verificando el material VSS dentro y fuera de un directorio local y luego presionando el VSS actualizado proyecto a la jerarquía del directorio de páginas web del servidor IIS. El flujo de trabajo es un poco más torpe. En este caso, no editaba páginas directamente en el servidor web de desarrollo a menos que pudiera bloquear las páginas de check-in como de solo lectura o algo así.

¿Esto sugiere algo que podría ser atractivo en el caso del servidor Linux?

0

Definitivamente Mercurial es una buena opción, rápida, fácil de usar, perfecta para trabajar sola, o con muchos otros desarrolladores, perfectamente multiplataforma, maneja fusiones, sucursales, etc. de manera muy simple, basada en plugins, hay grandes herramientas disponibles como buenos plugins IDE (especialmente Netbeans y Eclipse).

robusto, funciona del mismo modo que una espera de una herramienta de este tipo funcione, no como SVN (y tengo años de un día para otro) ...

Tanto Sun, Xen y Mozilla reciban a todos sus repositorios de Mercurial. Actualmente estamos pasando de SVN a Mercurial después de una prueba diaria de 6 meses, sin ningún remordimiento.

-1

CVS - No, no estoy bromeando. No es que sea mejor (no lo es) o lo más simple (no lo es), pero realmente no importa al final del día.Lo importante es comenzar con CUALQUIER sistema de control de versiones, incluso si se trata de una tienda de un solo desarrollador, incluso si se trata de CVS.

+0

De ninguna manera. Lo único bueno que se puede decir sobre CVS es que no es V * sual S * urceS * fe, que no es mucho. –

+1

No lo sé. Trabajé con sistemas simples, grandes y complejos e hizo el trabajo de manera excelente. Sin embargo, muestra su edad en comparación con otras herramientas. A decir verdad, escogería a Mercurial como "el mejor", pero al final realmente se convierte en una opinión subjetiva para la mayoría. Mi punto original al traer CVS es que 1) si eres bueno (chupa) en el control de la fuente, serás bueno (o chuparás) en cualquiera; y 2) CVS puede ser un buen punto de partida porque lo importante es tener la fuente controlada y versionada sin importar con qué. –

+0

Interesante cómo me modded para esto. Lo que sea. Fanboys puede tenerlo si eso los hace felices :) –

Cuestiones relacionadas