Devo adicionar código antigo ao meu repositório?

8

Eu tenho um repositório SVN de um site PHP e o último programador não usou o controle de origem corretamente. Como resultado, apenas o código desde que comecei a trabalhar aqui está no repositório.

Eu tenho várias cópias antigas da base de código completa salvas em arquivos como "backups", mas elas não estão no controle de origem. Não sei por que a maioria das cópias foi salva nem tenho uma maneira razoável de identificá-las para um número de versão. Eu faço tem as datas dos backups foram feitas, todos os backups têm timestamps do sistema de arquivos apropriados.

Devido a atualizações nas estruturas e nos drivers de banco de dados envolvidos, o código antigo está completamente extinto; não funciona mais na configuração atual do servidor. No entanto, os programadores anteriores tinham uma lógica única , então eu odeio ficar completamente sem cópias antigas para me referir ao que diabos eles estavam fazendo.

Devo manter essas coisas no controle de versão? Quão? Isolar o código antigo em tags / ramos separados?

Ben Brocka
fonte
Você tem uma cópia completa da base de código atual no controle de origem agora?
Joshua Drake
@ JoshuaDrake sim, o repo atual é uma cópia de trabalho completa de tudo o que eu preciso. Não estou faltando nada, exceto coisas históricas, mas fiz alterações substanciais em muitas partes do programa.
21712 Ben Brocka

Respostas:

10

Se você possui carimbos de data / hora razoáveis ​​em cada uma dessas versões de trabalho, talvez seja possível verificá-los um de cada vez até chegar à versão mais recente da base de código, suas alterações mais recentes.

O problema com a abordagem Tag, como todo mundo sugere, é que você perderá o histórico do conjunto de alterações em cada arquivo e isso tornará as comparações entre versões mais antigas do código mais difíceis.

maple_shaft
fonte
Eu queria saber se eu poderia colocá-los no histórico de revisões. As datas modificadas parecem precisas nas cópias antigas.
21712 Ben Brocka
2
@BenBrocka Obviamente você pode sim, basta começar verificando a cópia mais antiga da base de código em um novo ramo. Exclua tudo da sua cópia de trabalho, exceto os diretórios do subversion, copie a próxima cópia mais antiga para a sua pasta de trabalho. Verifique se há modificações, você verá todos os novos arquivos, atualizações e exclusões. Faça o check-in. Espuma. Enxágüe. Repita até que você tenha cabelos brilhantes e elegantes.
Maple_shaft
2
NOTA: Ao fazer isso, você perderá os registros de data e hora históricos nas versões anteriores, mas essas datas provavelmente não são muito úteis, além da curiosidade histórica. O histórico sequencial do conjunto de alterações para cada arquivo é muito mais valioso.
Maple_shaft
1
Não há como manter os registros de data e hora históricos, certo? Eles aparecerão como as revisões mais antigas?
21712 Ben Brocka
2
Claro que você pode manter os registros de data e hora. Dado um sistema autônomo ( por exemplo , um laptop, uma área de trabalho de PC), basta ajustar o relógio para o registro de data e hora do backup antes de fazer o check-in no SVN.
Ross Patterson
8

Eu usaria um dir separado, algo como "legado" para ter todas as coisas necessárias em um só lugar.

Simon
fonte
+1 Documente como as diferentes versões se relacionam, salve, avance com a cópia de trabalho.
JustinDoesWork
2

Eu pessoalmente faria. Você precisa garantir que todos eles sejam mantidos separados, provavelmente como você disse, com etiquetas. Você pode usar a data em que o arquivo foi editado pela última vez para descobrir uma ordem geral das coisas.

Colocá-lo no SVN seria bom para mostrar a história. Parece que você precisará, se eles tiverem alguns trechos estranhos, pois o histórico do arquivo será útil. Sem mencionar que você tem todo o histórico (conhecido) do projeto em um só lugar. Não consigo realmente pensar em uma razão para não fazê-lo, embora eu possa estar perdendo algo importante.

JosephRT
fonte