Existe um D? VCs gratuitos modernos que podem ignorar os números de sequência de mainframe?

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

  •  20-08-2019
  •  | 
  •  

Pergunta

Estou pensando em migrar um grande conjunto de programas de idiomas da IBM Assembler, de um VCS baseado em "nomes de arquivos incluem números de versão", a um VCS moderno que me dará, entre outras coisas, a capacidade de ramificar e mesclar.

Esses arquivos têm registros de 80 colunas, as 8 últimas colunas são um número de sequência quase intermediário.

Por várias razões nas quais eu realmente não quero desperdiçar espaço entrando, preciso que os VCs ignorem (mas espero preservar de alguma maneira bem definida) as colunas do número de sequência, e para diff e de patch baseado apenas na Conteúdo das primeiras 72 colunas.

Alguma ideia?


Apenas para esclarecer "ignorar, mas preservar": aceito que é um pouco vago, pois ainda não colecionei completamente minhas idéias.

Seria algo parecido com isso:

"Ao mesclar/remendar, se um lado tiver números de sequência, produza-os; se o lado mais do que um tiver números de sequência, use os presentes no arquivo (1 | 2 | 3)"


Por que eu quero preservar os números de sequência? Primeiro, eles realmente são números de sequência. Segundo, quero reintegrar essas coisas de volta ao mainframe, onde os números de sequência podem ser terrivelmente significativos. (Aqueles de vocês que sabem o que "SMP/E" significa que vão entender. Aqueles que não sabem, sejam felizes, mas tremem ...)


Acabei de perceber que não havia aceitado uma resposta. Escolha difícil, mas @noldorin se aproxima mais de onde eu tenho que ir.

Foi útil?

Solução

Eu acredito que qualquer sistema de controle de versão moderna (Subversão e Bazar são os que eu normalmente recomendo, sendo centralizado e distribuído respectivamente) pode utilizar uma ferramenta de diferença/mesclagem externa. Infelizmente, eu acho que você teria que escrever essa ferramenta de mesclagem personalizada (pelo menos nunca ouvi falar de alguém que você precisa), embora isso não deva ser uma tarefa enorme, eu imagino. Dizendo isso, você pode ter alguma sorte com as recomendações dadas em Esta questão de Stackoverflow assim como Este. Desculpe, não posso fornecer mais informações sobre quais você deseja analisar em particular, mas vale a pena procurar, caso algum deles atenda aos seus requisitos.

Outras dicas

No Mercurial, você pode facilmente ignorar as colunas 73-final de arquivos .asm-basta adicionar ao seu .hgrc as seguintes linhas:

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

(ou maneiras um pouco mais complexas se você deseja oferecer suporte a sistemas Windows também ;-). No entanto, isso não atenderia à parte de "reserva" de suas especificações "ignorar, mas preservar" (que, como aponta o comentário de Neil, é um pouco problemático em si).

Eu acho que o significado de "reserva" é a chave aqui. Quando você diz que os números de sequência são "quase sem sentido", isso "quase" inclui qualquer coisa além da sequência? No Dreamtime, costumávamos codificar uma espécie de fluxograma de programa por lá (você pode encontrar um exemplo na primeira edição do mês mítico de Brooks), mas essa prática morreu felizmente.

Se o único significado das colunas de números de sequência for como uma sequência de números ordenados. Eu ficaria tentado a usar a abordagem de @Alex - você pode pré -processar arquivos de um script em qualquer uma das ferramentas modernas de VC - para cortar os números de sequência e, ao extrair um arquivo, usar uma ferramenta análoga para reavaliar os registros novamente.

(Divulgação: represento o fornecedor da ferramenta descrito nesta resposta).

O que você deseja é uma ferramenta diferente que entende que as coisas nas colunas 72-80 são "Whitespace", independentemente dos fatos que você o preenchiu com caracteres.

o Designs semânticos Cobol Smart diferenciador Tem uma variante da IBM Enterprise Cobol que entende isso muito bem.

O SD faz diferenciação inteligente para uma variedade de Langauges, e o IBM Montbler é um alvo futuro. Entre em contato com o SD Offline para discussão sobre um diferenciador inteligente para o IBM Assembler, se você estiver interessado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top