Hi,
I was just setting up a new project using submodules and have run into
what appears to be a hang when git status is invoked. I haven't tried
to reproduce this but this is basically what I did (edited highlights
from my bash_history).
$ git --version
git version 2.0.3
$ mkdir proj
$ cd proj
$ git init
$ git submodule add <internal-repo-with-build-scripts> build
$ git submodule add --reference ~/src/linux/.git
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux
# I'm not sure if the --reference is relevant but I was just wanting
to cut down on my network transfer
$ git submodule add <internal-repo-with-skeleton-fs> rootfs
Oops I really wanted linux-stable to get the same version my board
vendor is using
$ vim .gitmodules
# change to linux-stable
$ git submodule sync
I'm not sure if this is a valid use-case but nothing complained that I
was changing the URL. In theory linux-stable should be a super-set of
linus' tree so the repositories are basically equivalent.
$ cd linux/
$ git remote show origin
* remote origin
Fetch URL:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
# Seems to have done the trick
$ git reset --hard v3.4.69
I suspect this is where the problem starts. When I did the git
submodule add it was pointing at the tip of linus' tree. Now I have
rewound considerably.
$ git status
[hang]
For what it's worth here's the output when I run with GIT_TRACE=1 git status
trace: built-in: git 'status'
trace: run_command: 'status' '--porcelain'
trace: exec: 'git' 'status' '--porcelain'
trace: built-in: git 'status' '--porcelain'
trace: run_command: 'status' '--porcelain'
trace: exec: 'git' 'status' '--porcelain'
trace: built-in: git 'status' '--porcelain'
trace: run_command: 'status' '--porcelain'
trace: exec: 'git' 'status' '--porcelain'
trace: built-in: git 'status' '--porcelain'
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitmodules
new file: rootfs
new file: build
new file: linux
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitmodules
modified: linux (new commits)
trace: run_command: 'submodule' 'summary' '--cached' '--for-status'
'--summary-limit' '-1' 'HEAD'
trace: exec: 'git' 'submodule' 'summary' '--cached' '--for-status'
'--summary-limit' '-1' 'HEAD'
trace: exec: 'git-submodule' 'summary' '--cached' '--for-status'
'--summary-limit' '-1' 'HEAD'
trace: run_command: 'git-submodule' 'summary' '--cached'
'--for-status' '--summary-limit' '-1' 'HEAD'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'rev-parse' '-q' '--git-dir'
trace: built-in: git 'rev-parse' '--show-prefix'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'rev-parse' '-q' '--verify' '--default' 'HEAD' 'HEAD'
trace: built-in: git 'hash-object' '-w' '-t' 'tree' '--stdin'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'rev-parse' '--sq' '--prefix' '' '--'
trace: built-in: git 'diff-index' '--cached'
'--ignore-submodules=dirty' '--raw'
'4b825dc642cb6eb9a060e54bf8d69288fbee4904' '--'
trace: built-in: git 'config' '-f' '.gitmodules' '--get-regexp'
'^submodule\..*\.path$'
trace: built-in: git 'config' 'submodule.rootfs.ignore'
trace: built-in: git 'config' '-f' '.gitmodules' 'submodule.rootfs.ignore'
trace: built-in: git 'config' '-f' '.gitmodules' '--get-regexp'
'^submodule\..*\.path$'
trace: built-in: git 'config' 'submodule.build.ignore'
trace: built-in: git 'config' '-f' '.gitmodules' 'submodule.build.ignore'
trace: built-in: git 'config' '-f' '.gitmodules' '--get-regexp'
'^submodule\..*\.path$'
trace: built-in: git 'config' 'submodule.linux.ignore'
trace: built-in: git 'config' '-f' '.gitmodules' 'submodule.linux.ignore'
trace: built-in: git 'diff-index' '--cached'
'--ignore-submodules=dirty' '--raw'
'4b825dc642cb6eb9a060e54bf8d69288fbee4904' '--' 'rootfs' 'build'
'linux'
trace: built-in: git 'rev-parse' '-q' '--verify'
'e4bbdf3b45828a2e9ca37ef329b8e708e324dfb1^0'
trace: built-in: git 'rev-list' '--first-parent'
'e4bbdf3b45828a2e9ca37ef329b8e708e324dfb1' '--'
trace: built-in: git 'log' '--pretty=format: > %s' '-1'
'e4bbdf3b45828a2e9ca37ef329b8e708e324dfb1'
trace: built-in: git 'rev-parse' '-q' '--verify'
'9f2d1659df78ea51eaa9ad5e7af9271996ac2a4c^0'
trace: built-in: git 'rev-list' '--first-parent'
'9f2d1659df78ea51eaa9ad5e7af9271996ac2a4c' '--'
trace: built-in: git 'log' '--pretty=format: > %s' '-1'
'9f2d1659df78ea51eaa9ad5e7af9271996ac2a4c'
trace: built-in: git 'rev-parse' '-q' '--verify'
'7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9^0'
trace: built-in: git 'rev-list' '--first-parent'
'7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9' '--'
trace: built-in: git 'log' '--pretty=format: > %s' '-1'
'7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9'
Submodule changes to be committed:
* rootfs 0000000...e4bbdf3 (249):
> Merge remote-tracking branch 'tomahawk/delivery_545_icmp'
* build 0000000...9f2d165 (771):
> Merge remote-tracking branch 'plusplus/3rdparty'
* linux 0000000...7d1311b (46122):
> Linux 3.17-rc1
trace: run_command: 'submodule' 'summary' '--files' '--for-status'
'--summary-limit' '-1'
trace: exec: 'git' 'submodule' 'summary' '--files' '--for-status'
'--summary-limit' '-1'
trace: exec: 'git-submodule' 'summary' '--files' '--for-status'
'--summary-limit' '-1'
trace: run_command: 'git-submodule' 'summary' '--files' '--for-status'
'--summary-limit' '-1'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'rev-parse' '-q' '--git-dir'
trace: built-in: git 'rev-parse' '--show-prefix'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'rev-parse' '-q' '--verify' '--default' 'HEAD'
trace: built-in: git 'hash-object' '-w' '-t' 'tree' '--stdin'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'rev-parse' '--sq' '--prefix' '' '--'
trace: built-in: git 'diff-files' '--ignore-submodules=dirty' '--raw' '--'
trace: built-in: git 'config' '-f' '.gitmodules' '--get-regexp'
'^submodule\..*\.path$'
trace: built-in: git 'config' 'submodule.linux.ignore'
trace: built-in: git 'config' '-f' '.gitmodules' 'submodule.linux.ignore'
trace: built-in: git 'diff-files' '--ignore-submodules=dirty' '--raw'
'--' 'linux'
trace: built-in: git 'rev-parse' 'HEAD'
trace: built-in: git 'rev-parse' '-q' '--verify'
'7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9^0'
trace: built-in: git 'rev-parse' '-q' '--verify'
'14aa272fcd1cdbe7173073250c767bc7a37278ce^0'
trace: built-in: git 'rev-list' '--first-parent'
'7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9...14aa272fcd1cdbe7173073250c767bc7a37278ce'
'--'
trace: built-in: git 'log' '--pretty=format: %m %s' '--first-parent'
'7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9...14aa272fcd1cdbe7173073250c767bc7a37278ce'
^C
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html