¿Existe un solo comando de Subversion que “restablezca” una copia de trabajo exactamente al estado que está almacenado en el repositorio? Algo como git reset --hard
o (¡ja, el restablecimiento completo de Git tampoco elimina los archivos no versionados!) rm -rf wc && svn co <url> wc
.
Actualización: no busco una reversión simple, ya que eso no elimina archivos adicionales en la copia de trabajo. Realmente quiero algo que sea lo mismo que eliminar la copia de trabajo y verificarla nuevamente, solo que sin tener que descargar los datos nuevamente. (Obviamente, no me importa perder todos los cambios no confirmados).
git clean -xdf
para eliminar cosas que no están bajo control de fuente.git clean
citas es exactamente lo que estoy buscando: "Esto se puede usar (posiblemente junto con git reset) para crear un directorio de trabajo impecable para probar una compilación limpia". Lástima que Subversion no parezca tener nada como esto incorporado.Respuestas:
Puede revertir de forma recursiva así:
svn revert --recursive .
No hay forma (sin escribir un guión creativo) de eliminar cosas que no están bajo el control de la fuente. Creo que lo más cercano que puede hacer es iterar sobre todos los archivos, usar y luego grep el resultado de
svn list
, y si el grep falla, eliminarlo.EDITAR : La solución para el script creativo está aquí: Elimine automáticamente los archivos no versionados de Subversion
Por lo tanto, podría crear un guión que combine a
revert
con la respuesta de la pregunta vinculada que más le convenga.fuente
svn cleanup
en el wc primero. Esta es mi práctica estándar para limpiar después de fusiones abortadas y todo eso.Para revertir archivos rastreados
Para limpiar archivos sin seguimiento
El
-rf
puede / debería parecer aterrador al principio, pero una vez entendido no será por estas razones:rm
-rf
requiere, de lo contrario, estos directorios no se eliminaránPara revertir y luego limpiar (la pregunta OP)
Para una facilidad de uso constante
Agrega un alias permanente a tus .bash_aliases
fuente
awk: fatal: error reading input file '-': Input/output error
?
en elawk
comando, de lo contrario corresponde todas las líneas en la salidasvn status
Elimine todo dentro de su copia local usando:
Y revertir todo de forma recursiva usando el siguiente comando.
Esto es mucho más rápido que eliminar todo el directorio y luego realizar un pago nuevo, porque los archivos se están restaurando desde sus metadatos SVN locales. Ni siquiera necesita una conexión de red.
fuente
para restablecer todo.
para un solo archivo
fuente
Elimine archivos no versionados y revierte cualquier cambio:
Fuera:
fuente
Solución pura de Windows cmd / bat:
fuente
Eliminar la copia de trabajo del sistema operativo y comprobarlo nuevamente es lo más simple, pero obviamente no es un solo comando.
fuente
Muy rápido y simple y hace exactamente lo que quieres.
El /(config|.ini)/ es para mis propios fines.
Y podría ser una buena idea agregar --no-ignore al comando svn
fuente
Para eliminar archivos sin seguimiento
Pude enumerar todos los archivos sin seguimiento informados por
svn st
en bash haciendo:Si se siente afortunado, puede reemplazar
echo
conrm
para eliminar los archivos sin seguimiento. O copie los archivos que desea eliminar a mano, si se siente menos afortunado.(Usé la respuesta de @ abe-voelker para revertir los archivos restantes: https://stackoverflow.com/a/6204601/1695680 )
fuente