git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: organizing multiple repositories with dependencies

From
ESEugene Sajine <euguess@gmail.com>
Date
Apr 24, 2012, 19:48 UTC
Message-ID
<CAPZPVFbHseYHdPOXmbyGxncZmmzSHwY_fJkNRRQAMVtGZBA0CQ@mail.gmail.com>
In-Reply-To
<1334568432.53977.YahooMailNeo@web65906.mail.ac4.yahoo.com>
On Mon, Apr 16, 2012 at 5:27 AM, Namit Bhalla <namitbhalla@yahoo.com> wrote:
Show 20 quoted lines
> I am looking to track some projects using Git with each project as a
> separate repository.
> Even after reading the documentation, I am still wondering if there is a
> way to organize things as described below.
>
> Consider 2 projects, Project-a and Project-b, which are housed in
> repositories Repo-a and Repo-b respectively.
> Project-a develops reusable libraries which are needed by Project-b
> (otherwise Project-b will not compile).
> When a new stable version of Project-a libraries has to be delivered, they
> are "checked into" a path in Repo-a.
> Now, I would like to setup Repo-b so that when someone starts working on
> Project-b, he should be able to retrieve the code from Repo-b as well as the libraries from Repo-a. Is there any way to achieve that in
> Git?
>
> Thanks for any pointers!
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

We are working in the environment where we have hundreds (700 + and counting) or projects with many of them reused by others. We are following strictly one project = one repo rule without any subtrees or submodules. What you are asking about is "integration" and IMHO has nothing to do with git - i.e. should be VCS independent. We are using integration on the artifact level and it works amazingly well. But we also use pretty strict naming and location convention that allows us to script around the whole setup very easily.

In order to track dependencies between projects we use Ivy. The project can be compiled locally using local copies of the upstream project artifacts built by developer on the same machine or if not present, the current production artifacts are used. We also have Jenkins CI server that helps with integration. It is very simple and straight forward set up without any unnecessary complications IMHO. Feel free to contact me if you need more info about such set up.

Just my 2 cents.

Thanks, Eugene

Previous: dag@cray.comNext: Hilco Wijbenga
Message 31 of 34 in “organizing multiple repositories with dependencies”
  1. Namit BhallaApr 16, 2012
  2. Jakub NarebskiApr 16, 2012
  3. dag@cray.comApr 16, 2012
  4. Hilco WijbengaApr 17, 2012
  5. dag@cray.comApr 17, 2012
  6. Seth RobertsonApr 17, 2012
  7. Hilco WijbengaApr 17, 2012
  8. dag@cray.comApr 17, 2012
  9. Hilco WijbengaApr 17, 2012
  10. PJ WeisbergApr 17, 2012
  11. Hilco WijbengaApr 17, 2012
  12. Namit BhallaApr 18, 2012
  13. Jens LehmannApr 18, 2012
  14. dag@cray.comApr 24, 2012
  15. Hilco WijbengaApr 24, 2012
  16. PJ WeisbergApr 24, 2012
  17. Hilco WijbengaApr 24, 2012
  18. dag@cray.comApr 24, 2012
  19. Phil HordApr 30, 2012
  20. dag@cray.comApr 30, 2012
  21. Jens LehmannApr 18, 2012
  22. dag@cray.comApr 24, 2012
  23. Seth RobertsonApr 24, 2012
  24. Jens LehmannApr 24, 2012
  25. Seth RobertsonApr 24, 2012
  26. dag@cray.comApr 24, 2012
  27. username localhostApr 28, 2012
  28. dag@cray.comApr 24, 2012
  29. Seth RobertsonApr 25, 2012
  30. dag@cray.comApr 27, 2012
  31. Eugene SajineApr 24, 2012
  32. Hilco WijbengaApr 24, 2012
  33. dag@cray.comApr 24, 2012
  34. dag@cray.comApr 24, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.