2011-04-28 22 views
10

Para confirmar algunos cambios en un repositorio de git, primero debo agregarlo al estado en etapas. Si no agrego un archivo para confirmar, no irá al repositorio.svn "git add" alternative?

Pero en SVN, al parecer, no existe tal estado de estadificación. Y cada cambio que hice en mi copia de trabajo va al repositorio con la siguiente confirmación de svn. ¿Cómo puedo evitar que algunos archivos cambiados localmente se comprometan sin revertir los cambios?

+2

Es interesante ver esta pregunta de esa forma, es decir, en lugar de sorprenderse de que git tenga la idea de "área de ensayo", alguien pregunta algo similar en Subversion :) Hay una buena discusión sobre esto en [una publicación de blog de Elijah Newren] (http://blogs.gnome.org/newren/2007/12/08/limbo-why-users-are-more-error-prone-with-git-than-other-vcses/) –

Respuesta

14

El comando svn commit tome parámetros de nombre de archivo opcionales que limitan el conjunto de archivos para cometer:

svn commit -m "my commit" file1.txt file2.txt 

También puede utilizar el "changelist" feature al grupo de uno o más archivos en una lista de cambios, que pueden presentarse en un comando . Esto es aún un poco menos flexible que Git, porque no puede agregar solo una parte de un solo archivo (como con git add -p).

+3

Haría sin la palabra "levemente" en "Esto todavía es un poco menos flexible que Git": la función de confirmar partes de los archivos es exactamente la característica que estoy buscando. –

1

Usted puede dar los nombres de archivos y directorios específicos a través de SVN algo como:

svn commit myfile.c 

que sólo van a cometer ese archivo.