¿Cómo puedo hacer un seguimiento de los cambios que realizo en mi copy de trabajo de los códigos fuente cada día?

svn diff, pero solo da la diferencia entre mi copy de trabajo y la revisión actual que revisé por última vez desde el repository.

Quiero la diferencia entre mi copy de trabajo hoy y mi copy de trabajo ayer. (Tal vez como un 'Seguimiento de cambios' en MS Word.)

Estoy trabajando en una gran base de código, miles de files y carpetas, miles de líneas por file. Actualmente realizo la compilation de código en Ubuntu VM, y el seguimiento de las diferentes versiones de cada file a través de múltiples copys diferentes en una carpeta de Windows. Luego también tengo otra copy de trabajo de Windows para SVN commits. También tengo otra copy de trabajo del directory de Ubuntu para las confirmaciones SVN en caso de que quiera comprometerme desde Linux. Esto se pone bastante confuso. Esperando una buena solución.

Actualización 1:

Recientemente, creé un server local SVN en mi Ubuntu VM que podría encargarme de los cambios que realice. Pero me enfrenté al problema de cómo transferir los códigos fuente actualizados del server de la empresa a mi server local y viceversa.

Entonces esto no funciona.

Actualización 2:

Pude crear una twig desde el tronco del repository en el server de la empresa. (Gracias al consejo de Robert Levy.)

Transferí todos mis cambios a esta twig usando commands diff y patch en Ubuntu.

En este momento, he realizado muchos cambios en los códigos fuente solo para realizar testings, por lo que no fusionaría estos cambios en el enlace troncal.

Sin embargo, estaría haciendo cambios posteriores que deseo fusionar en el tronco.

Estoy esperando algunos conflictos porque el nuevo cambio (que quiero fusionar) sería una línea antes del cambio anterior (que no quiero fusionar) para que el diff no esté limpio.

¿Es una buena idea crear otra sucursal con el propósito de fusionarse? ¿Cuáles son los pasos o posibles resoluciones de conflictos?

Actualización 3:

Me estoy acostumbrando a fusionar tronco y twigs con Tortoise SVN, con suerte.

(¿Debo comstackr en la twig 'to_test' o en la twig 'to_merge' o trunk?) Un paso a la vez.

Actualización 4:

Ahora edito y compilo cruzado el toolchain en la twig 'to_test' en Ubuntu. De vez en cuando, fusiono el tronco con la twig 'to_merge', y fusiono el tronco con la twig 'to_test' (resolviendo cualquier conflicto). Cuando mi function esté completa, combinaría los cambios seleccionados de la twig 'a_testing' a la twig 'a_merge' y luego fusionaría todo desde la twig 'a_merge' a la línea troncal. Toda la fusión se realiza en TortoiseSVN y KDiff3 en Windows, por lo que es bastante conveniente.

Este es, sin duda, un gran paso adelante al realizar manualmente copys de security múltiples de files individuales.

Gracias, Stack Exchange.

Actualización 5:

Ahora tengo dos twigs: 'Comprensión' y 'Desarrollo'. En la twig 'Comprensión', puedo dejarlo en la basura con muchas declaraciones de debugging de printing. En la twig 'Desarrollo', realizo solo los cambios necesarios para la function requerida. Una vez que la function esté completa, fusionaría todo desde la twig 'Desarrollo' al tronco. Mi compañía usa la política de 'trunk estable'. El 'tronco' debería estar listo para la producción.

En la twig 'Comprensión', cometí todos mis cambios manuales pasados ​​de una sola vez después de usar un parche diff. Por lo tanto, sería imposible seleccionar cambios individuales para la fusión. Por lo tanto, mi twig 'Comprensión' y 'Desarrollo' son independientes entre sí.

Crea una twig para ti. Esta será su propia sucursal privada donde puede sentirse libre de realizar cambios regularmente sin temor a impactar a nadie más. Al comprometerse con frecuencia, puede levantar fácilmente diferencias que muestran lo que cambió en un día determinado. Cuando esté listo, combine su sucursal privada con la sucursal principal para que otros puedan beneficiarse del increíble trabajo que ha realizado.

La otra forma de trabajar es tener localmente un repository git o mercurial que sombrea el repository svn, puede realizar confirmaciones frecuentes en el repository local y puede usar un ciclo de extracción, rebase, fusión, compromiso, inserción para comprometer sus cambios al repository svn

La única advertencia es que los cambios comprometidos con su repository local solo existen allí hasta que haya realizado un push. Sin embargo, puede tener otro directory que sea un clon del repository hg / git que está en otra máquina en la networking local o en una unidad extraíble, que si lo hace y luego lo extrae hará una copy de security de sus cambios, notablemente rápido .

Para configurar esto con mercurial, el process sería algo así como:

hg clone svn+https://Path/To/Your/SVN/Repo ~/HG_Working cd /media/me/removable/drive hg clone ~/HG_Working 

Una vez que haya realizado algunos cambios en ~ / HG_Working:

 ~/HG_Working> hg commit -m "Tuesdays Work" cd /media/me/removable/drive hg pull hg up