Subversion no tiene una función incorporada "no confirmar" / "ignorar al confirmar", a partir de febrero de 2016 / versión 1.9. Esta respuesta es una solución alternativa de línea de comandos no ideal
Como dice el OP, TortoiseSVN tiene una lista de cambios incorporada, "ignore-on-commit", que se excluye automáticamente de los commits. El cliente de línea de comandos no tiene esto, por lo que debe usar varias listas de cambios para lograr este mismo comportamiento (con advertencias) :
- uno para el trabajo que quieres comprometer [trabajo]
- uno para las cosas que desea ignorar [ignorar al confirmar]
Como hay un precedente con TortoiseSVN, uso "ignore-on-commit" en mis ejemplos para los archivos que no quiero comprometer. Usaré "trabajo" para los archivos que hago, pero puedes elegir el nombre que quieras.
Primero, agregue todos los archivos a una lista de cambios llamada "trabajo". Esto debe ejecutarse desde la raíz de su copia de trabajo:
svn cl work . -R
Esto agregará todos los archivos de la copia de trabajo de forma recursiva a la lista de cambios denominada "trabajo". Hay una desventaja en esto: a medida que se agregan nuevos archivos a la copia de trabajo, deberá agregar específicamente los nuevos archivos o no se incluirán. En segundo lugar, si tiene que ejecutar esto nuevamente, deberá volver a agregar todos sus archivos "ignorar al confirmar" nuevamente. No es ideal: podría comenzar a mantener su propia lista de "ignorar" en un archivo como lo han hecho otros.
Luego, para los archivos que desea excluir:
svn cl ignore-on-commit path\to\file-to-ignore
Debido a que los archivos solo pueden estar en una lista de cambios, la ejecución de esta adición después de su agregado "trabajo" anterior eliminará el archivo que desea ignorar de la lista de cambios "trabajo" y lo colocará en la lista de cambios "ignorar al confirmar".
Cuando esté listo para confirmar sus archivos modificados que desea, simplemente agregue "--cl work" a su confirmación:
svn commit --cl work -m "message"
Así es como se ve un ejemplo simple en mi máquina:
D:\workspace\trunk>svn cl work . -R
Skipped '.'
Skipped 'src'
Skipped 'src\conf'
A [work] src\conf\db.properties
Skipped 'src\java'
Skipped 'src\java\com'
Skipped 'src\java\com\corp'
Skipped 'src\java\com\corp\sample'
A [work] src\java\com\corp\sample\Main.java
Skipped 'src\java\com\corp\sample\controller'
A [work] src\java\com\corp\sample\controller\Controller.java
Skipped 'src\java\com\corp\sample\model'
A [work] src\java\com\corp\sample\model\Model.java
Skipped 'src\java\com\corp\sample\view'
A [work] src\java\com\corp\sample\view\View.java
Skipped 'src\resource'
A [work] src\resource\icon.ico
Skipped 'src\test'
D:\workspace\trunk>svn cl ignore-on-commit src\conf\db.properties
D [work] src\conf\db.properties
A [ignore-on-commit] src\conf\db.properties
D:\workspace\trunk>svn status
--- Changelist 'work':
src\java\com\corp\sample\Main.java
src\java\com\corp\sample\controller\Controller.java
src\java\com\corp\sample\model\Model.java
M src\java\com\corp\sample\view\View.java
src\resource\icon.ico
--- Changelist 'ignore-on-commit':
M src\conf\db.properties
D:\workspace\trunk>svn commit --cl work -m "fixed refresh issue"
Sending src\java\com\corp\sample\view\View.java
Transmitting file data .done
Committing transaction...
Committed revision 9.
Una alternativa sería simplemente agregar cada archivo que desea comprometer a una lista de cambios de 'trabajo', y ni siquiera mantener una lista de ignorados, pero esto también es mucho trabajo. Realmente, la única solución simple e ideal es si / cuando esto se implementa en SVN. Hay un problema de larga data sobre esto en el rastreador de problemas de Subversion, SVN-2858 , en caso de que esto cambie en el futuro.