¿Hay un D? VCS moderno y gratuito que pueda ignorar los numbers de la secuencia del mainframe?

Estoy buscando migrar un gran set de progtwigs IBM Assembler Language, desde un vcs basado en "nombres de file que incluyen numbers de versión", a un vcs moderno que me dará, entre otras cosas, la capacidad de ramificarme y fusionarme.

Estos files tienen loggings de 80 columnas, las últimas 8 columnas son un número de secuencia casi sin sentido.

Por una serie de razones por las que no quiero desperdiciar espacio al acceder, necesito que los vcs ignoren (pero espero que conserven de alguna manera bien definida) las columnas de los numbers de secuencia, y para diferir y aplicar parches basados ​​solo en el contenido de las primeras 72 columnas.

¿Algunas ideas?


Solo para aclarar "ignorar pero preservar": acepto que es un poco vago, ya que aún no recolecté completamente mis ideas.

Sería algo así como esto:

"Al fusionar / aplicar parches, si un lado tiene numbers de secuencia, dígalos; si más de un lado tiene numbers de secuencia, utilice los presentes en el file (1 | 2 | 3)"


¿Por qué quiero preservar los numbers de secuencia? Primero, realmente son numbers de secuencia. En segundo lugar, quiero volver a integrar este material en el mainframe, donde los numbers de secuencia pueden ser terriblemente significativos. (Aquellos de ustedes que saben lo que significa "SMP / E" significa. Los que no lo hacen, sean felices, pero tiemblen …)


Me acabo de dar count de que no había aceptado una respuesta. Difícil elección, pero @Noldorin se acerca más a donde tengo que ir.

Creo que cualquier sistema moderno de control de versiones ( Subversion y Bazaar son las que recomiendo típicamente, ya que están centralizadas y distribuidas respectivamente) pueden utilizar una herramienta externa de fusión / fusión. Desafortunadamente, creo que tendrías que escribir esta herramienta de fusión personalizada por tu count (al less nunca he oído hablar de una que hace lo que necesitas), aunque esta no debería ser una gran tarea, supongo. Diciendo eso, puede tener algo de suerte con las recomendaciones dadas en esta pregunta de StackOverflow así como esta . Lamento no poder brindarle más información sobre cuáles querrá examinar en particular, pero vale la pena consultar en caso de que alguna de ellas satisfaga sus requisitos.

En Mercurial, puede ignorar fácilmente las columnas 73-final de los files .asm, simplemente agregue a su .hgrc las siguientes líneas:

[encode] *.asm: cut -b -72 

(o forms un poco más complejas si también quieres admitir sistemas Windows ;-). Sin embargo, esto no cumpliría con la parte de "preservar" de su especificación "ignorar pero preservar" (que, como señala el comentario de Neil, es algo problemático en sí mismo).

Creo que el significado de "preservar" es la key aquí. Cuando dices que los numbers de la secuencia son "casi insignificantes", ¿ese "casi" incluye algo además de la secuencia? En el Dreamtime, solíamos codificar una especie de diagtwig de flujo del progtwig (puedes encontrar un ejemplo en la Primera Edición del Mes de Mythical Man de Brooks) pero esa práctica afortunadamente se ha extinguido.

Si el único significado de las columnas de numbers de secuencia es como una secuencia orderada de numbers. Estaría tentado de utilizar el enfoque de @ Alex, puede preprocesar files de un script en cualquiera de las herramientas de VC modernas, para cortar los numbers de secuencia, luego, cuando extraiga un file, use una herramienta análoga para volver a secuenciar los loggings.

(Divulgación: represento al vendedor de la herramienta descrita en esta respuesta).

Lo que quiere es una herramienta de diferencias que entienda que las cosas en las columnas 72-80 son "espacios en blanco" independientemente de los hechos que haya rellenado con caracteres.

Los Diseños semánticos COBOL Smart Differencer tiene una variante IBM Enterprise COBOL que lo entiende perfectamente.

SD hace Smart Differencers para una variedad de langauges, y IBM Assembler es un objective futuro. Póngase en contacto con SD fuera de línea para conversar acerca de un Smart Differencer para IBM Assembler, si está interesado.