¿Existe un DCSVCS gratuito moderno que pueda ignorar los números de secuencia de mainframe?

StackOverflow https://stackoverflow.com/questions/845222

  •  20-08-2019
  •  | 
  •  

Pregunta

Estoy buscando migrar un gran conjunto de programas de IBM Assembler Language, desde un vcs basado en " los nombres de archivo incluyen números de versión " ;, a un vcs moderno que me dará, entre otras cosas , la capacidad de ramificarse y fusionarse.

Estos archivos tienen registros de 80 columnas, siendo las últimas 8 columnas un número de secuencia casi sin sentido.

Por una serie de razones por las que realmente no quiero desperdiciar espacio al entrar, necesito las vcs para ignorar (pero con suerte preservar de alguna manera bien definida) las columnas de números de secuencia y diferir y parchear solo en el contenido de las primeras 72 columnas.

¿Alguna idea?


Solo para aclarar " ignorar pero preservar " ;: Acepto que es un poco vago, ya que todavía no he recopilado completamente mis ideas.

Sería algo similar a esto:

  

" Al fusionar / parchar, si un lado tiene números de secuencia, envíelos; si más de un lado tiene números de secuencia, use los presentes en el archivo (1 | 2 | 3) "


¿Por qué quiero conservar los números de secuencia? Primero, realmente son números de secuencia. En segundo lugar, quiero reintegrar estas cosas nuevamente al mainframe, donde los números de secuencia pueden ser terriblemente significativos. (Aquellos de ustedes que saben lo que & "; SMP / E &"; Significa entenderán. Aquellos que no, sean felices, pero tiemblen ...)


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

¿Fue útil?

Solución

Creo que cualquier sistema moderno de control de versiones ( Subversion y Bazar son los que normalmente recomendaría, siendo centralizado y distribuido respectivamente) puede utilizar una herramienta externa de fusión / fusión. Desafortunadamente, creo que tendría que escribir esta herramienta de fusión personalizada usted mismo (al menos nunca he oído hablar de una que haga lo que necesita), aunque esta no debería ser una gran tarea, me imagino. Dicho esto, puede tener suerte con las recomendaciones dadas en esta pregunta de StackOverflow , así como < a href = "https://stackoverflow.com/questions/50371/better-merge-tool-for-subversion"> este . Lo sentimos, no puedo dar más información sobre cuáles querrá examinar en particular, pero vale la pena echar un vistazo en caso de que alguno de ellos satisfaga sus requisitos.

Otros consejos

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

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

(o formas un poco más complejas si también desea admitir sistemas Windows ;-). Sin embargo, esto no cumpliría con & Quot; preservar & Quot; parte de su " ignore pero conserve " spec (que, como señala el comentario de Neil, es algo problemático en sí mismo).

Creo que el significado de " preservar " Es la clave aquí. Cuando dice que los números de secuencia son & "; Casi sin sentido &"; ¿Eso hace & "; Casi &"; incluir algo además de la secuencia? En Dreamtime, solíamos codificar una especie de diagrama de flujo del programa allí (puede encontrar un ejemplo en la Primera Edición del Mes del Hombre Mítico de Brooks), pero esa práctica afortunadamente ha desaparecido.

Si el único significado de las columnas de números de secuencia es como una secuencia ordenada de números. Estaría tentado a usar el enfoque de @ Alex & # 8212; puede preprocesar archivos desde un script en cualquiera de las herramientas modernas de VC & # 8212; para cortar los números de secuencia, luego, cuando extraiga un archivo, use una herramienta análoga para volver a secuenciar los registros.

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

Lo que quiere es una herramienta diff que entienda que las cosas en las columnas 72-80 son " espacios en blanco " independientemente de los hechos que lo has llenado de personajes.

El Semantic Designs COBOL Smart Differencer tiene una variante IBM Enterprise COBOL que entiende esto muy bien.

SD hace Smart Differencers para una variedad de idiomas, e IBM Assembler es un objetivo futuro. Si está interesado, póngase en contacto con SD fuera de línea para hablar sobre un Smart Differencer para IBM Assembler.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top