Por que doze stashes idênticos nos fizeram parar antes de apagar qualquer coisa
Doze pacotes iguais de trabalho inacabado estavam parados em quase todos os workspaces que verificamos, no mesmo padrão e na mesma ordem. Não sabemos há quanto tempo estavam lá. Doze sobras idênticas são o tipo de descoberta que dá vontade de pegar uma vassoura.
Em vez disso, fomos mais devagar.
Um stash é um pequeno pacote guardado de alterações inacabadas, deixado de lado para depois. Pense numa sacola de recibos enfiada na gaveta da cozinha porque você pretende organizar tudo outro dia. Uma sacola é normal. Encontrar a mesma sacola, com os mesmos recibos na mesma ordem, em quase todas as gavetas é outra história. Isso sugere que as gavetas foram copiadas de uma gaveta original.
Aquilo era uma pista, não uma conclusão.
A contagem não bastava
No começo, a contagem igual parecia suficiente. Não era. Uma contagem diz que existe um padrão. Ela não diz se esses pacotes são bagunça antiga ou o trabalho inacabado de alguém. Poderíamos ter tratado o número como uma lista de limpeza, e seria rápido, mas não seria cuidadoso.
Nossa primeira abordagem, confiar só no resumo, não funcionou. Ela nos custou tempo, porque tivemos que parar, ir além da contagem e comparar os registros de verdade. Esse é um custo melhor do que apagar trabalho e fazer perguntas depois.
Lugares independentes costumam acumular tipos diferentes de bagunça. Um tem um experimento que não deu em nada. Outro está arrumado. Outro tem um desvio recente que ninguém limpou ainda. Quando os detalhes acidentais batem exatamente, é razoável perguntar se esses lugares vieram da mesma cópia preparada, em vez de terem sido feitos separadamente. Razoável não é o mesmo que provado.
O que verificamos
Tratamos o padrão como uma pergunta. Comparamos uma amostra pequena e autorizada, em vez de presumir que cada coincidência significava a mesma coisa. Verificamos se as entradas realmente eram iguais, se o histórico e a ordem também eram, e se havia um caminho documentado que explicasse como as cópias passaram a existir. Também consultamos um inventário confiável para saber quais cópias existiam e quais ainda estavam ativas.
Essa última parte importa mais do que parece. A tela de atividade mostrava os workspaces ativos, não todos os que existiam. Se a tivéssemos usado como a verdade completa, poderíamos ter limpado só uma parte do problema, deixado as cópias inativas de fora e nos convencido de que o trabalho estava feito.
É como tirar os casacos dos cabides da porta da frente e anunciar que a casa está arrumada. Ainda pode haver jaquetas no armário, na cadeira do andar de cima ou no fundo de um carro. A visão era útil. Só tinha limites.
O que precisa existir antes de apagar qualquer coisa
Depois que as sobras repetidas foram verificadas e consideradas obsoletas, limpá-las pode ajudar. Isso tira o ruído e deixa o trabalho inacabado de verdade mais fácil de notar. Mas a limpeza precisa deixar espaço para exceções, porque o único pacote que ainda importa é justamente o que torna perigosa uma varredura ampla.
Antes de mudar qualquer coisa, gostaríamos de ter quatro coisas:
- Uma lista completa, vinda de uma fonte feita para ser completa, e não do relatório que por acaso estiver aberto.
- Uma verificação clara de quem é o responsável ativo. Se uma pessoa ou um processo ainda está usando algo, isso pesa mais do que a arrumação.
- Uma forma documentada de recuperar o trabalho caso o julgamento esteja errado.
- Passos pequenos, com uma verificação depois de cada um, em vez de uma única ação grande e a esperança de que tenha dado certo.
Também anotaríamos por que os pacotes repetidos foram tratados como duplicatas, quem aprovou a decisão e qual era o plano de recuperação. Meses depois, isso permite que alguém entenda a decisão sem ficar adivinhando o que o padrão significava na época.
Um padrão muito certinho pode apontar para um passado em comum. As cópias podem ter começado do mesmo snapshot preparado. Podem ter carregado mais histórico do que alguém pretendia. Ou podem incluir trabalho que ainda pertence a alguém. O padrão nos dá um lugar para investigar. Não nos dá permissão para apagar.
Doze continua sendo o número que importa. Seja o que for que acabe varrido, o plano de recuperação e a verificação de responsável precisam cobrir os doze, não só os que a tela de atividade mostrou. A contagem que nos deu vontade de pegar a vassoura é a mesma que usamos agora para provar que olhamos em todas as gavetas antes de mexer em uma.