Pregunta

En mi lugar de trabajo, utilizamos SVN y TortoiseSVN (Windows XP) como cliente. Tengo un viaje muy largo y trabajo fuera de línea durante eso.
Ahora, me gustaría tener algún tipo de " deshacer extendido " en la zona; es decir, me gustaría tener el control de versión local de mi copia de trabajo de SVN, por ejemplo, para atreverme a refactorizar.
Cambiando por completo a por ej. git, mercurial, etc. no es una opción, ya que la empresa utiliza SVN.

Lo que me gustaría saber es si alguien tiene alguna experiencia en la versión de la copia de trabajo local de SVN, ¿quizás al ejecutar un git local o similar?
¿Hay algún inconveniente potencial? (quizás jugando con carpetas .svn o similares)

¿Fue útil?

Solución

Por lo general, me gusta esto:

  1. Obtenga el repositorio SVN como copia de trabajo.
  2. Inicialice el repositorio de Git en esta copia de trabajo.
  3. Hack hack hack;
  4. Comprometerse con mi repositorio de Git.
  5. Actualización de la empresa SVN.
  6. Resolver conflictos.
  7. Comprometerse con la compañía SVN repo una característica completa.

Otros consejos

Utilizo Git como un cliente local de Subversion para el trabajo y funciona muy bien. Cuando realiza un git svn clone de un repositorio de Subversion, el proceso de pago que obtiene no tiene los directorios ocultos .svn , sino que es un repositorio de Git completo por derecho propio . La capacidad de usar sucursales locales y ligeras para organizar mi propio desarrollo es una función excelente para mí.

Otras funciones que utilizo todo el tiempo son git stash , confirmaciones por etapas y git add -p .

Puede crear una instantánea del trabajo utilizando svn export y luego crear su propio repositorio de subversion y usar la instantánea del repositorio de trabajo como registro inicial.

Luego puede hacer sus cambios y usar Subversion (su copia del repositorio local) hasta que termine. Por supuesto, puede realizar una fusión regular desde el repositorio de trabajo principal para asegurarse de que su contenido esté actualizado. Por último, cuando haya terminado de realizar la refectoración, simplemente haga un svn exportar instantánea de su repositorio local y fusionarlo de nuevo en su repositorio de trabajo principal.

Esto es un poco burdo, pero esta es la única forma de administrar este tipo de flujo de trabajo.

Si tienes acceso regular al trabajo. Puede crear una rama del contenido y trabajar en la rama desde el repositorio de trabajo exclusivamente y usar el método del repositorio local cuando necesite su funcionalidad de deshacer extendida. En este punto, por supuesto, usar un sistema de control de versiones local no lo limitará a subversión, así que haga su elección.

Es posible que desee probar SVK que es un VCS descentralizado basado en subversión. Se puede usar para reflejar el repositorio oficial en su computadora portátil y sincronizar sus compromisos con el troncal oficial.

La última vez que verifiqué el estado de SVN, el soporte de registro local aún era un plan de características a largo plazo. Git, por otro lado, es definitivamente una opción, con git-svn. Es decir, si su arquitectura es Unix, AFAIK, git-svn aún no es compatible con la plataforma de Windows.

Nada impide ejecutar el servidor SVN local. Lo estoy usando de esa manera.

Git sería una buena solución (porque puedes crear y combinar muchas sucursales muy fácilmente) pero:

  • cuando vuelva a importar su modificación a svn, debe limpiar primero las muchas ramas intermedias que creó bajo git;
  • git-svn no funciona con la distribución de Git en Windows, por lo que es posible que desee utilizar una imagen virtual de Linux si está trabajando en Windows.
  • Si puede hacer que git-svn se ejecute, use git2svn et svn2git ruby ??scripts, como se describe en esta pregunta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top