git-svn: comtesting una twig remota que ya existe en svn cuando mi maestro ya es una twig. Explica esto .git / config

Esta es una pregunta un tanto rara dado que el equipo al que me he unido usa SVN. Básicamente, el repository svn sigue un layout estándar, pero el tronco realmente no se ha tocado en 1.5 años más o less y el trabajo tiende a suceder solo en twigs y twigs de twigs. Como tal, he usado git-svn para clonar desde la twig que representa la twig activa para nuestra próxima versión y esa es la pista maestra en mi repository git local. Llamemos a esta twig en svn 'release' de aquí en adelante. Usar git-svn para este propósito es solo hunky dory.

Ahora, alguien ha creado una twig de function de 'lanzamiento', que voy a llamar 'característica', que me gustaría desplegar en una de mis sucursales locales, y me comprometo a hacerlo también. Claro, puedo salirme con la clonación de esa twig en otro repository de directory / git localmente, pero lo que realmente me gustaría hacer es tener una 'function' reflejada en una twig local dentro de mi repository git local, así como hacer una fusión entre los dos tan straightfoward como sea posible. He visto otras publicaciones de stackoverflow.com mostrar cómo funciona esto suponiendo que has usado git svn init con --stdlayout , pero no lo hice en mi caso por las razones indicadas anteriormente.

Aquí está mi .git / config

 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [svn-remote "svn"] url = https://our.svn.server/svn/root/branches/release fetch = :refs/remotes/git-svn 

Asumo que lo que necesito en mi sección [svn-remote] es un branches = $something pero no sé qué es $ something en este caso ni qué encantamiento de git checkout y otros commands necesito después de hacer eso cambiar a .git / config.

¿Alguna sugerencia?


Editar – Los siguientes trabajos:

Así que comencé desde cero e hice el siguiente command de clonación:

git svn clone https://my.svn.server/svn/root -T branches/branch_I_want_as_master -b branches

Que, después de aproximadamente 16 horas, finalmente networkingujo todo lo que necesitaba. La .git / config resultante se ve así:

 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [svn-remote "svn"] url = https://my.svn.server/svn/root fetch = branches/branch_I_want_as_master:refs/remotes/trunk branches = branches/*:refs/remotes/* 

Así que sé que esto funciona: puedo git checkout -b name-of-a-branch name-of-a-branch y me da la twig remota en mi repository git local. Las respuestas anteriores no eran las respuestas exactas que necesitaba, pero he votado desde que fueron útiles.

En este punto, aceptaré una respuesta que solo explique por qué funciona esto y tal vez un enlace útil que explique cómo hacer las cosas correctamente con .git / config.

¿Has intentado simplemente agregar branches=.. a tu sección svn-remote? (presumiendo puntos de url directamente en su twig de release ). Obtendrá un cabezal de release extra que rastrea la twig de liberación, pero luego obtendrá el rest de las twigs para que pueda verificarlas. ¡Como una git svn branch adicional de git svn branch (probablemente) también funcionará para crear nuevas sucursales!

Como nota al margen, también podrías haber utilizado --stdlayout para clonar tu svn repo, y luego configurar master para rastrear release lugar de trunk . Eso tampoco es difícil de hacer.

Tu configuration de repository debería verse así:

 [svn-remote "svn"] url = https://our.svn.server/svn/root fetch = branches/release:refs/remotes/git-svn branches = branches/release/feature1:refs/remotes/branches/* branches = branches/release/feature2:refs/remotes/branches/* 

url debe apuntar a la raíz de su repository. fetch puntos en su troncal (podría ser cualquier twig de hecho), y podría haber cualquier número de inputs de branches , que señale sus twigs de características .

Tal vez deberías build tu repository de git desde scatch, pero esta configuration funciona.