Tengo el siguiente problema que otras personas deben haber encontrado. Estoy trabajando en una base de código que se ejecuta en dos plataformas diferentes. La mayoría del código se comparte entre las plataformas, pero algunas partes del código están optimizadas para una plataforma en particular. Por lo tanto, puede haber una implementación genérica de la función foo()
en el archivo foo.cpp
y una implementación optimizada para la plataforma A en el archivo foo_A.cpp
.¿Hay alguna manera de "enredar" dos archivos en Subversion?
Por supuesto, lo que sucede a veces es que un desarrollador modifica foo.cpp
y olvida hacer un cambio correspondiente a foo_A.cpp
para mantenerlos sincronizados. Esto lleva a errores muy desagradables, que son difíciles de rastrear.
Finalmente, aquí está mi pregunta: ¿hay alguna forma de "enredar" dos o más archivos en Subversion? ¿Es posible que cada vez que se comete un cambio en foo.cpp
, svn emita una advertencia, un recordatorio para actualizar foo_A.cpp
?
¿Cuál es el motivo por el que las funciones se encuentran en archivos separados? Los tendría en un solo archivo con #ifdef para incluir una función sobre la otra. No resuelve directamente el problema, pero acerca mucho las funciones. – Robert
Esto no es algo que realmente debería ser manejado por un VCS. En cambio, es su proceso de edición lo que de alguna manera debe mantener sincronizados los dos archivos. –
@Neil, ¿cómo? Básicamente, debe recordar que cada vez que modifique foo.cpp, es posible que necesite modificar foo_A.cpp. Y si tiene 500 archivos, 20 de los cuales tienen una contraparte optimizada, las posibilidades de olvidar esto son muy altas. Agregue a eso el hecho de que la versión optimizada es probable que haya sido escrita por otra persona. Usar el VCS para verificar y darle una advertencia si se modifica uno de esos 20 archivos parece razonable. – Dima