Perché non ci sono richieste di selezione selettiva?

6

Uno svantaggio per le richieste pull (ovvero le richieste di unione) è molti e molti di commit di unione.

Non è la cosa peggiore, ma ingombra i log di commit e crea una quantità di cronologia non sequenziale non necessaria.

A - C - E - G
   /   /   /
  B   D   F

Quello che penso sarebbe meglio è cherry-pick the commits.

A - B' - D' - F'

Naturalmente posso farlo da solo, ma uno dei vantaggi in un sistema di richiesta pull come Github, Bitbucket, Stash o Gerrit è la capacità di farlo attraverso l'interfaccia, immediatamente dopo una revisione delle modifiche. E farlo manualmente non mostrerebbe la richiesta pull come accettata nell'interfaccia utente.

Perché gli strumenti di richiesta pull non offrono "richieste cherry-pick"?

Comprendo i vantaggi dell'unione e della cronologia non sequenziale nel caso generale. (Altrimenti userò SVN.) Sto prendendo in considerazione circa uno o due cambiamenti di commit dai rami transitori. (Molti strumenti ti aiutano anche a eliminare il ramo subito dopo l'unione). Un one-commit il cambiamento è probabilmente il caso più comune per le richieste pull.

    
posta Paul Draper 20.09.2014 - 08:09
fonte

1 risposta

4

Il problema delle richieste pull è che rende noto che ci sono cambiamenti che qualcuno vuole apportare al progetto.

Se il proprietario / manutentore vuole selezionare le parti della richiesta di pull, possono farlo da quella richiesta di pull.

E solo perché c'è una richiesta pull non significa che il maintainer non è autorizzato, o incapace, a fare un rebase.

Quindi questo è indicativo di uno stile che potrebbe essere ricercato nella storia.

Puoi sempre visualizzare la cronologia senza la cronologia di unione o anche il contrario.

  • git log --merges
  • git log --no-merges

Quindi si riduce a, penso:

  1. Il proprietario del progetto che desidera applicare o meno un determinato stile di cronologia
  2. Il fatto che puoi ottenere facilmente un set di informazioni da Git stesso, indipendentemente.

Hai anche detto che "Un cambiamento di commit singolo è probabilmente il caso più comune per le richieste pull", ma non ne sono sicuro.

Per esempio, il numero di commit potrebbe essere sconosciuto a causa delle abitudini degli sviluppatori di eseguire micro-commit e quindi di ridistribuirli. Inoltre, è normale per me vedere i proprietari di progetti che chiedono che tali commit vengano schiacciati nel file CONTRIBUTING.txt o in altre comunicazioni.

Modifica: Naturalmente, non posso rispondere alla domanda sul perché le società X, Y e Z non fanno qualcosa. Non sono sicuro che qualcuno possa farlo, ad eccezione di quelle entità.

    
risposta data 04.12.2014 - 16:55
fonte

Leggi altre domande sui tag