Gruparea depozitelor pe GitHub? [duplicat] (Programare, Github)

zanerock a intrebat.

Iată care este situația: Am migrat o grămadă de depozite pe Github. În prezent, depozitele sunt organizate în grupuri/directoare precum „stack”, „websites”, „applications”, etc.

Nu există nicio modalitate (pe care am găsit-o) de a crea grupuri sau foldere pe GitHub pentru repository, cu excepția organizațiilor, ceea ce pare o alegere proastă. Dar poate că nu? Problema aici este că unele dintre grupuri sunt foarte mici, în timp ce altele sunt mari… cu subgrupuri, iar eu aș vrea să păstrez toate proiectele într-un singur bucket rădăcină.

Așadar, am rămas cu posibilitatea de a folosi o convenție de denumire. Cum ar fi: „stack-apache”, „website-foo.com”, „aplicație-un-proiect oarecare”. Sau pur și simplu să renunț la organizarea lor în github și să las paginile de proiect / site-ul web să se ocupe de organizare.

Referitor la scară, mă gândesc la 20+ repos inițial, cu noi repos-uri adăugate în timp la o rată estimată de 2-5 /an pentru următorii câțiva ani.

Are cineva experiență cu acest tip de lucru?

Comentarii

  • Meta observație: Sunt destul de sigur că am căutat răspunsuri atunci când am postat întrebarea (pentru că întotdeauna o fac). Probabil că nu am folosit niciodată termenul „dosare”. Este, desigur, în mare parte, un duplicat. De asemenea, îmi aduce aminte de ceva ce am auzit odată despre diferența dintre „filme” și „cinema”. Sunt sinonime, dar nu sunt același lucru. Diferite grupuri culturale le folosesc în moduri diferite. Acest lucru mă face să mă gândesc la aspectul pozitiv al duplicatelor, în sensul că acestea fac ca lucrurile să fie ușor de găsit, deoarece prezintă o perspectivă/un mod de gândire/un punct de vedere ușor diferit. –  > Por zanerock.
  • Da, acesta este principalul motiv pentru care duplicatele sunt de obicei încă accesibile și lizibile pe SO. –  > Por Marvin.
3 răspunsuri
Simon Boudrias

20+ repos

Nu este chiar atât de rău.

Ideea este de fapt să folosiți organizațiile pentru a grupa repo-urile legate între ele. Acest lucru face, de asemenea, mai ușor pentru membrul echipei dvs. să își filtreze fluxurile de activitate doar la organizațiile care îi interesează.

Acest lucru este asemănător cu cel de pe Github, deoarece git se bazează pe repo, nu pe sistemul de fișiere ca SVN.

Poate că „Organizație” nu este un nume foarte intuitiv, dar pe platforma Git alternativă, cum ar fi Gitlab, aceste diviziuni se numesc „grup”. Chiar ar trebui să le considerați așa.

Comentarii

  • Sună rezonabil. Inițial am avut „Sau poate că „Organizație” este un nume înșelător?” în post, dar am tăiat pentru concizie. Cred că voi merge cu proiectele de bază sub compania-Organizație și voi crea câteva grupuri-Organizații pentru organizarea proiectelor conexe. –  > Por zanerock.
  • 38

  • Aș spune că tratarea organizațiilor GitHub ca grupuri complică facturarea și gestionarea permisiunilor și a fragmentelor. GitHub pur și simplu nu are un concept de depozite conexe fără a impune o semantică suplimentară. Prefixarea numelor de depozite este cea mai comună practică pe care am văzut-o. –  > Por Emerson Farrugia.
  • Bună observație în ceea ce privește facturarea. Fără a fi precizat, întrebarea inițială era pentru proiecte cu sursă deschisă în mod fundamental, deci facturarea nu era o problemă. Părerea mea este că „echipele” sunt suficiente pentru a organiza permisiunile, așa că, într-un context open source, acest lucru funcționează. Într-un context cu sursă închisă, sunt de acord cu privire la prefixare. –  > Por zanerock.
  • adăugarea nefericită la acest lucru este că, în timp ce organizațiile sunt modalitatea de a crea acest lucru. Ele există ca o entitate de nivel superior. Așadar, nu pot crea o organizație în interiorul contului meu astfel încât să apară ca un grup, acestea se atașează direct la spațiul de nume de nivel superior github.com 🙁 –  > Por Christopher Thomas.
Chris

După părerea mea, organizațiile au un alt scop în Github decât să grupeze depozite (deși servesc la gruparea depozitelor). Organizațiile sunt mai mult despre controlul fin în jurul accesului la repo-uri (așa am înțeles eu).

Bitbucket a introdus conceptul de „Proiecte”, cu următoarea ierarhie (cu o comparație cu Github):

Bitbucket: Team         -> has N -> Projects -> has N -> Repos
Github:    Organisation -> has N                      -> Repos

Bitbucket permite în continuare ca Repos să să nu fie să nu fie atribuite unei echipe sau unui proiect, bănuiesc că pentru a sprijini depozitele mai vechi care existau înainte de conceptul de proiect.

Pentru a răspunde la întrebare, nu, nu direct. Există solicitări restante cu Github pentru a adăuga grupuri, dar nu pare probabil (în acest moment).

Prefixarea funcționează ca o soluție așa și așa:

Numele repo-ului: [project]__[repo name]

Să spunem că aveți un client „acme” cu două depozite:

Eg: acme__apiEg: acme__landing

Căutarea în Github este rapidă și în linie, așa că dacă faceți o căutare pentru acme__ în lista de repo-uri va lista toate repo-urile pentru acme__ proiect.

Actualizare 2020

Nu știu exact când, dar Github a adăugat (oarecum recent) conceptul de proiecte, care umple oarecum golul lipsă. Aș spune că nu sunt chiar la fel ca proiectele Bitbucket, dar sunt mai potrivite pentru a grupa repo-uri conexe în Github decât org-urile

Comentarii

  • Singura mare problemă pe github pentru mine a fost pierderea a tot ceea ce era atribuit unui depozit după ștergerea unui depozit. Da, furcile vor fi pierdute din cauza hașurilor din git, dar cum rămâne cu toate celelalte lucruri? Este destul de foarte enervant atunci când folosești github doar ca o oglindă și pierzi toate datele aferente atunci când recreezi un depozit dintr-un alt spațiu de stocare. –  > Por Andry.
  • Proiectele GitHub sunt mai mult pentru a gestiona fluxul de lucru în stil kanban, nu pentru a grupa depozite așa cum face GitLab. –  > Por mcamurri.
  • @mcamurri Sunt de acord 100%. Acesta „umple într-un fel golul lipsă” – -.  > Por Chris.
  • Tot nu-mi permite, ca utilizator, să grupez depozite care nu sunt ale mele în scopul organizării și separării – depozite de, de exemplu, cadre sau instrumente -…  > Por Gal Grünfeld.
  • @GalGrünfeld De acord – încă nu este o problemă complet rezolvată la partea Github –  > Por Chris.
Andry

Cred că ideea de a grupa depozite pe github este aceea de a pune doar un delimitator între elementele pe care doriți să fie legate între ele. De exemplu, „proiect1_proiectA_proiectX”, sau „proiect1-proiectA-proiectX”, sau chiar „proiect1–proiectA–proiectX”.

În ceea ce mă privește, prefer delimitatorul cu două liniuțe, deoarece este mai intuitiv pentru înlocuirea delimitatorului de caractere slash (/) și mai puțin utilizabil într-un nume de depozit de sine stătător.

Apoi, lista proiectelor de planificare pe care trebuie să le creați ar fi:

  • proiect1
  • proiect1–proiectA
  • proiect1–proiectA–proiectX

De îndată ce creați un depozit cu un delimitator (_ sau -) în nume, nu va exista opțiunea de a seta, de exemplu, descrierea repo-ului sau licența din pagina de titlu a repo-ului. Trebuie să vă ocupați de acestea din pagina de titlu a depozitului după ce s-a făcut un prim push. Dar puteți lăsa totul simplu, de exemplu, pentru proiectulX ar fi ceva de genul acesta: „proiect1–proiectA submodul”.

Tags: