¿Cómo actualizar un file SVN sin finalizarlo?

Estoy escribiendo algunos scripts para actualizar el repository SVN del linux box con alguna versión más nueva de files xml. El repository es enorme y no hay una versión de pago en la misma caja. La idea es actualizar el xml sin una copy de trabajo, ¿es eso posible? ¿O debo pagar la carpeta temporal, copyr / sobrescribir, registrar y eliminar la carpeta temporal?

actualización, muchas gracias por sus respuestas hasta ahora.

Sé que puedes hacerlo con API y código, no estoy seguro si algún command SVN lo hace …

Muchas gracias.

¿El problema es que no quieres molestarte con el pago o porque temes que si haces un checkout, tendrás que pagar un montón de files?

Tienes que hacer un pago y envío en Subversion. No puede simplemente enviar cambios sin una copy de trabajo. (No del todo cierto, puedes hacer svn delete y svn mkdir sin un checkout).

Sin embargo, puede limitar la cantidad de files que se --depth con el --depth . Por ejemplo, puede hacer lo siguiente:

 $ svn co --depth=empty http://myserver/myrepos/mydirectory 

Esto revisará el directory, pero sin ningún file en él. A continuación, puede hacer una svn update de solo los files que desea modificar y luego confirmar esos cambios:

 $ cd mydirectory #Enter the empty working copy just checked out $ svn update fileToChange #Adds file you want to change to your working dir $ edit fileToChange.xml $ svn commit -m "Modified 'fileToChange.xml' with latest version" 

Esto le permitirá cambiar el file fileToChange.xml sin tener que extraer todo el directory.

Hay una manera de "actualizar" un file sin un directory de trabajo, pero esto dependerá de lo que desee hacer. En muchos casos en los que realizo comprobaciones automáticas como esta, he encontrado esta solución lo suficientemente buena:

Puede usar svn import para actualizar los files

Algo como:

 svn import -m "updating the xml" local.xml http://server/path/to/repo/server.xml 

Catch es que no puede importar un file ya existente, por lo que tendrá que emitir una eliminación y luego importar:

 svn delete -m "deleting for update" http://server/path/to/repo/server.xml 

Pierdes el historial, pero es una forma muy simple y liviana de actualizar el file y depende por completo de lo que estás haciendo. Si no se siente cómodo con la eliminación y la pérdida del historial, debe usar los methods sugeridos por otras respuestas.

No puede comprometer un cambio sin una copy de trabajo. El motivo es que svn no envía el file al server, sino que envía el delta (es decir, las diferencias). Esto está diseñado para networkingucir el tráfico de networking, pero obviamente, necesita conocer la versión anterior para calcular la diferencia.

Puede extraer una copy de trabajo utilizando las opciones dispersas, para que pueda crear un WC con solo ese file, no es necesario que revise todo el repository. Alternativamente, puede exponer el repository usando webdav, luego solo copy el file nuevo sobre el anterior y la opción de confirmación automática calculará la diferencia y registrará el file.

Puede almacenar una copy de trabajo en su location temporal, luego solo debe copyr los files allí y confirmarlos. No es necesario eliminar el WC, solo asegúrese de que solo un usuario especial de svn pueda acceder a él y puede dejar el WC allí la próxima vez que necesite hacerlo.

Si tiene un cliente de Subversion 1.8 o posterior, puede agregar o actualizar uno o más files existentes a la vez sin consultar el repository mediante el command svnmucc put . Ver http://svnbook.networking-bean.com/en/1.8/svn.ref.svnmucc.re.html .

No puede actualizar un file sin verificar una carpeta localmente. Sin embargo, hay un atajo: para no verificar todo el repository, puede consultar solo la subcarpeta donde está el file que desea actualizar.

Si su representante está en https://your.domain/myrep , puede ver https://your.domain/myrep/myfolder

De esta forma, a less que tenga el file XML en la carpeta raíz, networkinguciría la cantidad de files. Si tiene control sobre el repository, incluso podría crear una subcarpeta con el único propósito de almacenar ese file.