Come identificare con sicurezza i rami obsoleti di Git

0

Usiamo Github e Smartgit.

Spesso stiamo scoprendo che abbiamo molti "vecchi" rami che ingombrano i nostri repository e causano confusione tra il nostro team Dev, Posso usare: git branch --molto per un sacco di questo.

Quindi sto cercando di definire le regole per l'eliminazione sicura di un ramo da un repository upstream, qui (in inglese) è il mio "algoritmo" suggerito:

Identifica i rami candidati eseguendo:

git branch -r --merged

For each listed branch on our main/upstream repo
    For each fork of the repo
        If there is no fork that has additional commits on the branch Then
           If there is no local repo that has additional commits on the branch Then
              Delete the branch.

Ammettiamo che questo non può essere automatizzato (a causa dei repository locali) ma voglio stabilire se queste regole sono valide e sufficienti per l'eliminazione sicura.

Se è così posso documentare e far conoscere tutti gli sviluppatori sull'algoritmo complessivo.

Domanda successiva, se quanto sopra è valido c'è qualche strumento che possiamo eseguire può controllare automaticamente ogni forcella? O devo (in una capacità di amministratore) creare un telecomando per il fork di tutti in modo che possa vedere tutti questi quando eseguo il comando con l'opzione -r?

Immagino che questa potrebbe essere una GRANDE caratteristica per Github da fornire perché sa di tutte le forcelle.

Non sarebbe una grande cosa forse per i popolari repository open source, ma per le aziende private con solo una manciata di forks (per sviluppatori) potrebbe essere estremamente utile.

Commenti, suggerimenti apprezzati!

    
posta Hugh 12.07.2017 - 21:00
fonte

1 risposta

2

Stai pensando troppo a questo. In git, tutti i rami di tutti i repository sono uguali. È completamente sicuro per eliminare qualsiasi ramo che è stato fuso in un altro ramo. Se qualcuno ha ulteriori commit su quel ramo da qualche altra parte di cui non sei a conoscenza, possono sempre ricreare quel ramo in qualsiasi momento dalla propria copia. Cerca solo i rami che non hanno commesso da un po 'di tempo.

Questo funziona anche per i rami non separati. Se qualcuno ha creato un ramo non occupato molto tempo fa e poi lo ha abbandonato, invia un'email chiedendo di avere una settimana per estrarlo prima che venga eliminato. Se riprendono quel lavoro più tardi, possono sempre ricreare quel ramo dalla propria copia. Magari creare un repo "archivio" invece di eliminarlo completamente se sei davvero paranoico riguardo alla perdita di codice.

La migliore politica, tuttavia, è prendere l'abitudine di eliminare i rami subito dopo aver unito le richieste di pull.

    
risposta data 12.07.2017 - 23:32
fonte

Leggi altre domande sui tag