Qual è il punto di namespace nelle filiali in git?

4

Quindi uso principalmente Mercurial per i miei progetti e ho deciso di sedermi e imparare tutti gli imbrogli di Git per scoprire se sono nella parte giusta (almeno per me).

Sto imparando che git usa gli spazi dei nomi per i rami e mi piacerebbe sapere (secondo la tua esperienza) qual è lo scopo dei namespace ?. In Mercurial potrei semplicemente impostare la convenzione per denominare i rami in questo modo:

<branch name> //for "origin" branches
<username>/<branch name> //for user branches

Immagino che ci sia dell'altro oltre al nome (oltre ad evitare i conflitti di denominazione), ma cosa ne ricavo da questo modello apparentemente più complicato (non necessariamente cattivo)?

    
posta dukeofgaming 18.10.2012 - 09:13
fonte

2 risposte

2

Git non "usa" namespace nel senso in cui sono richiesti. Offre la possibilità completamente opzionale per un utente di utilizzare gli spazi dei nomi, se li desiderano. Puoi usare la stessa identica convenzione di denominazione che hai fatto in mercurial se vuoi, e immagino sia quello che fa la stragrande maggioranza delle persone.

Quali spazi dei nomi ti comprano è la possibilità di combinare più repository in uno solo, ma essere in grado di mostrare solo i rami da un unico repository virtuale. All'interno dello spazio dei nomi, puoi comunque denominare i rami usando qualsiasi metodo tu preferisca. Personalmente, non vedo davvero il vantaggio sull'utilizzo di più repository, ma ovviamente qualcuno ha pensato che potrebbe essere utile a volte.

Git ha un sacco di funzionalità, di cui forse il 3-5% vede l'utilizzo quotidiano da parte dello sviluppatore tipico. Il trucco per andare d'accordo con git, è per quelle caratteristiche che non vuoi / mi piace / capisci, non ti preoccupare di loro.

    
risposta data 18.10.2012 - 17:40
fonte
1

Non ho mai fatto qualcosa di serio con mercurial, quindi posso perdere qualcosa. Sto usando gli spazi dei nomi nella denominazione dei rami git praticamente, ma non inserirò mai il mio nome nel nome del ramo.

Per ogni attività descritta nel task tracker stiamo creando un ramo separato, con il numero del ticket e una breve descrizione del bug. A questo punto non ci sono ancora spazi:

  remotes/origin/275-test-new-urls
  remotes/origin/283-fullscreen
  remotes/origin/299-current-menu-item
  remotes/origin/301-users-api
  remotes/origin/306-range-window-resize
  remotes/origin/307-dropdown-init-onload

Quindi, ad esempio, ti rendi conto che alcune attività necessitano di ulteriori rami per sperimentare. Questi rami sono di fatto figli del ramo di attività "principale", cioè dopo il completamento il dovrebbe (se proprio dovrebbe) essere unito a quello stesso compito. Ecco i namespace:

 remotes/origin/283-fullscreen-buggy-animation   
 remotes/origin/283-fullscreen.refactor

Ho visto che la barra viene anche utilizzata per il namespace, ma personalmente preferisco i punti, poiché utilizzando le barre può causare alcuni problemi.

    
risposta data 18.10.2012 - 10:00
fonte

Leggi altre domande sui tag