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

Using repo to work with multiple GIT repositories

From
KRkanagesh radhakrishnan <rkanagesh@gmail.com>
Date
Dec 5, 2008, 11:20 UTC
Message-ID
<ece1079f0812050320n7191097sbc1c10c353b23708@mail.gmail.com>
Hello All,
My work currently resides in four different source trees, namely:
   * bootloaders   (git://192.168.10.1/bootloaders)
   * kernel           (git://192.168.10.1/kernel)
   * applications  (git://192.168.10.1/apps)
   * build             (git://192.168.10.1/build)

I maintain them as four different git repositories. They are hosted on a local server enabling any other developer to be able to clone from one of the trees, make changes, commit locally and then push to the git server.

I was browsing through the Android source code and found that they have a similar situation where code is maintained in a large number of independent GIT repositories. The tool 'repo' is being used to initialize and sync each tree.

I have been trying to bring in this approach to maintain my work too. I have had success to some extent :-) I have created a manifest.git and repo.git in my local server. The default.xml file being maintained in manifest.git has a list of the GIT repositories being hosted by my local GIT server.

In order to clone the four GIT trees from the server, I do the following:
   $ repo init -u git://192.168.10.1/manifest.git
   $ repo sync
This clones from the four source trees maintained in the GIT server.

I am able to make changes locally in each tree and commit them. However, when I attempt to push the commits to the main repository on the GIT server, it always says that 'everything is up to date'

   $ git push user@192.168.10.1:/home/git/applications
   user@192.168.10.1's password:
   Everything up-to-date

Further, when I try to pull in any recent updates with the git-pull command, I get the following error:

   $ git-pull
   fatal: 'origin': unable to chdir or not a git archive
   fatal: The remote end hung up unexpectedly
I know pushing to the repository on the GIT server works since I am
able to push local commits when I have cloned the working copy
manually (instead of using repo init and repo sync).
-----------------------------------------------------------------
   $ git-clone git://192.168.10.1/applications
   Initialized empty Git repository in /home/user/work/applications/.git/
   remote: Counting objects: 6857, done.
   remote: Compressing objects: 100% (3805/3805), done.
   remote: Total 6857 (delta 2943), reused 6853 (delta 2941)
   Receiving objects: 100% (6857/6857), 9.51 MiB | 10547 KiB/s, done.
   Resolving deltas: 100% (2943/2943), done.
   $
   <edit, make changes, save, commit changes locally>
   $ git-commit -a -m "Changed rule to build with custom tools"
   Created commit bd55a06: Changed rule to build with custom tools
   1 files changed, 1 insertions(+), 1 deletions(-)
   $
   <push changes to repository on GIT server>
   $ git-push user@192.168.10.1:/home/git/applications
   user@192.168.10.1's password:
   Counting objects: 8, done.
   Compressing objects: 100% (6/6), done.
   Writing objects: 100% (6/6), 611 bytes, done.
   Total 6 (delta 4), reused 0 (delta 0)
   To user@192.168.10.1:/home/git/applications
   dce4bea..bd55a06  master -> master
   $
-----------------------------------------------------------------

May I know what I have to look at to solve this problem? Has anyone faced a similar problem? Any pointers would be of help.

Thanks in advance.

Regards, Kanagesh

Next: Shawn O. Pearce
Message 1 of 2 in “Using repo to work with multiple GIT repositories”
  1. kanagesh radhakrishnanDec 5, 2008
  2. Shawn O. PearceDec 8, 2008

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.