GithubHelp home page GithubHelp logo

git-repo's People

Contributors

boivie-at-sony avatar buckett avatar cco3 avatar chadj-at-google avatar colincross avatar davvid avatar dborowitz avatar dianders avatar dpursehouse avatar dsandler avatar ey3ball avatar intelmatt avatar jasta avatar jooncheol avatar l0kod avatar mem avatar mikeandroid avatar mpontillo avatar pdubroy avatar pelya avatar roylee17 avatar spearce avatar thiagofarina avatar tornewuff avatar trondn avatar ulrik-s avatar vapier avatar xdxu avatar yath avatar yestin avatar

Stargazers

 avatar

Watchers

 avatar  avatar

git-repo's Issues

request "repo rollback" command

Reported by Andrew D. Stadler (Google) <[email protected]> on Tue May 26 
13:51:51 PDT 2009
Source: JIRA REPO-35

How exactly does one rollback a submitted change?

The workflow wiki says,

#  Use git revert [SHA1-to-revert] to create a new commit that is a negative
of the submitted SHA1.
#  Use repo upload to push that rollback into gerrit for review.

Sounds good except, how do you know which SHA1 to use?  For example, looking
at #3054 (23 May 18:58) I see three entries, and here are some snippets from
them:

tree    34a2c936f3f92745552e6f961efd421a9a453848
parent  61d8c706f809eaefcc1122194c787ea834a64159
parent  34975da6472e6a466d04e5e33cdc7edf9a6e1676

Merge commit '34975da6472e6a466d04e5e33cdc7edf9a6e1676'
* commit '34975da6472e6a466d04e5e33cdc7edf9a6e1676':

---
commit  34975da6472e6a466d04e5e33cdc7edf9a6e1676
tree    0a7f302fe4bfae31a0df37863983022d8bb2e8be
parent  474acb9ad815cd2104217236c607359476ce470b
parent  e281887e8299a3b309812dfaafc6f089336be787

---
commit  e281887e8299a3b309812dfaafc6f089336be787
tree    f5cfc1349f0791c0bcfbf698edcd096178aaab68
parent  e1b02e4f2279e3eb4b9bc280fa2ded7bb07a92ae

I count 8 sha-1 values listed here.

Given that it takes a few steps to get this done, and some uncertainty, would
it be possible to add a "repo rollback" command that would allow you simply
enter a CL number (e.g. "repo rollback 3054") and have it DWIM ?

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Traceback on repo status during merge with conflicts

Reported by Wink Saville <[email protected]> on Tue Mar 03 12:24:23 PST 2009
Source: JIRA REPO-15
Affected Version: 1.6.1

$ repo status
project frameworks/base/                        (*** NO BRANCH ***)
 M-     Android.mk
 M-     core/java/android/net/MobileDataStateTracker.java
 M-     core/java/android/pim/ContactsAsyncHelper.java
 M-     core/java/android/provider/Checkin.java
 M-     core/java/android/provider/Settings.java
 --     core/java/android/provider/Settings.java.BASE.21007.java
 --     core/java/android/provider/Settings.java.LOCAL.21007.java
 --     core/java/android/provider/Settings.java.REMOTE.21007.java
 M-     core/java/android/webkit/gears/AndroidRadioDataProvider.java
.....
.....
.....
 A-     telephony/java/android/telephony/cdma/TtyIntent.java
 M-     telephony/java/android/telephony/gsm/GsmCellLocation.java
 Um     telephony/java/android/telephony/gsm/SmsManager.java
 Um     telephony/java/android/telephony/gsm/SmsMessage.java
Traceback (most recent call last):
  File "/usr/local/google/users/wink/repo-clients/master/.repo/repo/main.py",
line 202, in ?
    _Main(sys.argv[1:])
  File "/usr/local/google/users/wink/repo-clients/master/.repo/repo/main.py",
line 186, in _Main
    repo._Run(argv)
  File "/usr/local/google/users/wink/repo-clients/master/.repo/repo/main.py",
line 96, in _Run
    cmd.Execute(copts, cargs)
  File "/usr/local/google/users/wink/repo-clients/master/.repo/repo/subcmds/
status.py", line 27, in Execute
    project.PrintWorkTreeStatus()
  File "/usr/local/google/users/wink/repo-clients/master/.repo/repo/
project.py", line 362, in PrintWorkTreeStatus
    line = ' %s%s\t%s => (%s%%)' % (i_status, f_status,
TypeError: not all arguments converted during string formatting

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

Allow commits to be trimmed during repo upload --replace

Reported by Nick Pelly <[email protected]> on Thu Jun 04 14:36:12 PDT 2009
Source: JIRA REPO-27
Affected Version: 1.6.7.3
Environment: linux

I often have a couple of "DO NOT SUBMIT: debug" commits to turn on debugging
flags on top of the commit under review.

Having to maintain two parallel git branches in order to upload changes to the
commit under review is a real pain in the ass for my workflow.

It would be great if you could remove commits from repo upload --replace

2 cents.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Support init from a reference client like git clone --reference does

Reported by Jean-Baptiste Queru <[email protected]> on Tue Mar 03 12:13:17 PST 2009
Source: JIRA REPO-12
Affected Version: 1.6.1

I find that I'm running repo init every few hours while I work (whenever I
find myself in a situation I don't know how to recover from). I'd like to
avoid hitting the server each time, though, since it takes quite a while (and
uses some bandwidth).

Is there any way I could just keep a clean "reference" repo client (i.e. where
all I do is repo sync), and then repo init new clients from that one? That
way, creating new clients is just a bunch of local file copies, which should
be much faster than a network transfer.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

`repo forall -c <command>' should abort iteration if <command> yields non-zero exit status

Reported by Shawn Pearce <[email protected]> on Fri Mar 20 07:53:46 PDT 2009
Source: JIRA REPO-17
Affected Version: 1.6.4

From 
http://groups.google.com/group/repo-discuss/browse_thread/thread/234ae79d11a39c8
9:

repo forall's current behaviour is to continue processing even if a command
had failed.  This can be difficult to detect command failure that happened
early on in the output when each repo prints a few lines of its own.

Looking at the code it does seem possible to detect if a command failed by
checking the exit status of repo itself, but it would be nice to have the
option to abort processing in the event of command failure as well, even if as
an extra command-line switch.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

How about a "repo add" command?

Reported by Andrew D. Stadler (Google) <[email protected]> on Thu May 21 
11:33:27 PDT 2009
Source: JIRA REPO-33

I find it pretty annoying to have to bounce back and forth between the top
level and the project directory just to do git commands.  Would it be worth
adding a command to repo that could this automatically?  I'm thinking of
something like:

repo add path/to/file
  - confirm file exists
  - cd to file's directory
  - while (there is no .git directory) cd ..
  - git add file

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Allow multiple release branches in the same client

Reported by Shawn Pearce <[email protected]> on Mon Feb 09 10:38:15 PST 2009
Source: JIRA REPO-5

When talking about m/cupcake and m/donut, having them both in the same client
requires that we parse the manifest XML for both, so we can initialize them.

repo should parse all possible manifests and export the symbolic refs under
the m/ namespace whenever possible, to simplify compares and merges across
manifest revisions.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

When copying files allow parent directories to be created

Reported by Matthew Buckett <[email protected]> on Wed Sep 02 
04:15:21 PDT 2009
Source: JIRA REPO-47
Affected Version: 1.6.8.7

Allow the copyfile tags in the manifest to support creating a directory that
doesn't yet exist. In this example:

<project name="sakai">
  <copyfile src="pom.xml" dest="pom.xml"/>
  <copyfile src="kernel-deploy/pom.xml" dest="kernel-deploy/pom.xml"/>
  <copyfile src="pack-demo/pom.xml" dest="pack-demo/pom.xml"/>
</project>

the folder kernel-deploy doesn't exist in a standard checkout. As git doesn't
track directories it can't be added without creating a file inside the
directory.

The layout of the projects is coming from converting a SVN project with lots
of externals to repo/git.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Attachments:

A targeted repo sync should not touch other directories

Reported by Andrew D. Stadler (Google) <[email protected]> on Mon Jul 13 
20:43:29 PDT 2009
Source: JIRA REPO-42

I did "repo sync" with a specific directory (packages/apps/Email) and it
reported that it was making changes in other directories.  This seems wrong;
If I tell it to work in a specific directory, I really don't want it making
changes in other directories - right?

dhcp-172-18-101-194:master stadler$ repo sync packages/apps/Email
remote: Counting objects: 572, done
remote: Compressing objects: 100% (19/19)
Unpacking objects: 100% (19/19), done.
From ssh://android-git.corp.google.com:29418/platform/packages/apps/Email
   d0860a1..7d614f3  master     -> goog/master
Fetching projects: 100% (2/2), done.
Deleting obsolete path /Volumes/src/repo/master/external/bluez
Deleting obsolete path /Volumes/src/repo/master/external/eglib
Deleting obsolete path /Volumes/src/repo/master/external/hcidump

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

permit skipping repo upload prompt for internal servers

Reported by Cary Clark <[email protected]> on Fri Apr 17 06:14:22 PDT 2009
Source: JIRA REPO-25
Affected Version: 1.6.5
Environment: internal to Google

The y/n prompt in repo upload is a necessary safeguard for external uploads,
but less relevant to uploads to our internal tree. A configuration option in
~/.gitconfig that says "when uploading to internal server don't prompt" would
be helpful.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Expand repo-level wrappers for branch management

Reported by Christopher Tate <[email protected]> on Wed Apr 08 13:28:12 PDT 2009
Source: JIRA REPO-21

Because a common Android workflow involves topic branches spanning multiple
embedded git projects, it would be nice to have some repo-level facilities for
viewing and selecting among currently-started topic branches.  In particular,
it would be pretty convenient to have:

    repo checkout branchname

as an easy-to-remember, easy-to-type shortcut for 'repo forall -c git checkout
branchname'.  It would also be really nice to have repo synthesize a concise
view of all extant branches, something like

    repo branches [package1, package2, ...]

that would wrap the corresponding 'repo forall [package1, package2, ...] -c
git branch | sort -u' etc.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

repo init -b <branch> fails

Reported by Ed Heyl <[email protected]> on Mon Aug 31 10:04:48 PDT 2009
Source: JIRA REPO-46
Environment: Linux: gHardy

JBQ said he saw the same problem externally, and had to do empty merges
between manifests to resolve the issue.

I wasn't sure which branch I 'was' on (master I believe), but I tried to run
'repo init -b donut' to switch to the donut branch, but repo failed with:
repo init -b donut
.repo/manifests/: discarding 49 commits removed from upstream
project .repo/manifests/
First, rewinding head to replay your work on top of it...
Applying: new project
/usr/local/google/src/android-git/.repo/manifests/.git/rebase-apply/patch:13:
trailing whitespace.

warning: 1 line adds whitespace errors.
Applying: Remove spurious whitespace
error: readonly-korg-proprietary-master.xml: does not exist in index
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Renaming readonly-korg-proprietary-master.xml => stage-korg-donut.xml
Auto-merging stage-korg-donut.xml
CONFLICT (rename/modify): Merge conflict in stage-korg-donut.xml
Failed to merge in the changes.
Patch failed at 0002 Remove spurious whitespace

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".


fatal: cannot create default in manifest

BUT, as you can see I wasn't even on any branch, repo confused?

android-build@sekiwake:/usr/local/google/src/android-git$ git branch -av
fatal: Not a git repository (or any of the parent directories): .git
android-build@sekiwake:/usr/local/google/src/android-git$ cd .repo/manifests
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$ ls
default.xml  readonly-korg-donut.xml  readonly-korg-proprietary-donut.xml
stage-korg-donut-release.xml  stage-korg-donut.xml
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$
android-build@sekiwake:/usr/local/google/src/android-git/.repo/manifests$ git
branch -av
* (no branch)                        c7fdd2b new project
  default                            f3d8636 new project: platform/external/
proguard.git
  remotes/m/master                   -> origin/master
  remotes/origin/cupcake             fdff64a Add appropriate projects to the
staging area
  remotes/origin/donut               b2c12d3 Remove spurious whitespace
  remotes/origin/donut-release       887e073 new project
  remotes/origin/eclair              83a9499 Manifest for eclair mirror +
proprietary files
  remotes/origin/eclair-plus-aosp    2b66785 Remove unnecessary manifests
  remotes/origin/eclair-release      5888623 reconcile difference between
eclair and eclair-release manifests.
  remotes/origin/icu4c-merge         2674ab4 Manifest that includes the
sandbox for icu4c merges
  remotes/origin/master              f3d8636 new project: platform/external/
proguard.git
  remotes/origin/master-webkit-merge 0279630 Update default.xml to point
frameworks/base and external/webkit to master-webkit-merge.
  remotes/origin/master_gl           032466e merge master in master_gl
  remotes/origin/readonly-p4-donut   db8d2ea Always use FQDN for android-git
  remotes/origin/readonly-p4-master  ab61a73 Always use FQDN for android-git

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Error message when "upload --replace" doesn't modify a particular change

Reported by Dave Bort <[email protected]> on Thu Apr 30 18:21:35 PDT 2009
Source: JIRA REPO-30
Affected Version: 1.6.7.2

I have a project with two commits on it, which I had uploaded, thus creating
two changes.

I made a change to the HEAD commit, and wanted to update the change.  Since I
only touched HEAD, the change based on HEAD^ didn't actually need to change.

I ran "repo upload --replace", and entered the numbers for the two changes.

When I exited the editor, repo failed with an error, but still did what I
wanted it to do:

$ repo upload --replace .
Counting objects: 18, done.
Delta compression using 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 3.41 KiB, done.
Total 10 (delta 6), reused 0 (delta 0)
To ssh://[email protected]:29418/platform/frameworks/base
 * [new branch]      config -> refs/for/donut
 * [new branch]      74114a38e5da300d6094c7a610399d0bed557de0 -> refs/changes/
847/new
 ! [remote rejected] 8015cf1cc3698542407c316918de20683da32d66 -> refs/changes/
845/new (patch set exists)
error: failed to push some refs to 'ssh://[email protected]:
29418/platform/frameworks/base'

--------------------------------------------
[FAILED] frameworks/base/ config           (Upload failed)


I see two ways to solve this:
1. Recognize that the "patch set exists" error means that this upload is a no-
op, and treat it as success
2. Provide a way for upload --replace to let me mark a commit as "do not re-
upload".

(1) seems to be the most straightforward, especially since repo actually did
what I wanted it to do (the HEAD commit was pushed successfully), unless
there are some other cases where  "patch set exists" is actually an error.

(2) would be nice, especially since then I wouldn't have to look up the change
number for a push that I know will be a no-op, but this is tricky from a UI
perspective.  You should only be able to set "do not re-upload" on commits
whose parents are already submitted/merged or whose parents are also being
marked "do not re-upload".


Anyway, this seems like a corner case, and it did what I wanted it to, so I'm
marking it as "Minor".

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

repo init --mirror should get refs/changes/* too

Reported by Shawn Pearce <[email protected]> on Tue Mar 03 12:26:05 PST 2009
Source: JIRA REPO-16
Affected Version: 1.6.1

repo init --mirror should use refs/*, to fully mirror the remote, instead of
just refs/heads/*.

This may be necessary to support replication of temporary change refs created
by Gerrit (under refs/changes/*).

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

`repo start` should not need a project name if the branch is unique

Reported by Cedric Beust <[email protected]> on Mon Jun 22 09:41:59 PDT 2009
Source: JIRA REPO-40

When I try to start a branch that already exists, repo still asks me to supply
the project name, which seems unnecessary if that branch name is unique:

$ repo branches
   CommentReplies            | in gerrit
*  Debug                     | in gwtexpui
   InlineImages              | in gerrit
*P InlineImagesCherryPick    | in gerrit
 P SearchByUser              | in gerrit
   master                    | in gerrit
   save                      | in gerrit

$ repo start SearchByUser
error: at least one project must be specified

Couldn't repo determine that the project is `gerrit` since it's the only one
that contains a branch called SearchByUser?

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Suggestions for improving commit messages (wrap length)

Reported by Andrew D. Stadler (Google) <[email protected]> on Tue Jun 09 
13:22:04 PDT 2009
Source: JIRA REPO-36

In gerrit-209 I asked if we could wrap the display of long commit messages,
which were forcing H scrolling on the web page.  Shawn said no, because no
other git tools handle wrapping either.  The expectation is that that git
messages must wrap at 80 (in fact, apparently there is a style guide somewhere
that the first line should wrap at 60.

Since the onus is on the writer to follow these guidelines, here are some
suggestions to make things better in the workflow.

1.  When the user types "git commit", the editor should be launched with hard-
wrapping enabled (this is done already in "g4 change".  e.g. vi -c "set
textwidth=80"

2.  When the user types "repo upload", suggest checking the message and
offering warnings such as:

$ repo upload path/to/file
warning:  commit message should wrap at 80 column limit.  continue anyway?  (y/
n)

This is lightweight, does not block "I really meant to do it", and will never
appear once you remember to write your comments that way.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

User level Git errors shouldn't produce stack traces

Reported by Shawn Pearce <[email protected]> on Fri Apr 10 14:16:23 PDT 2009
Source: JIRA REPO-23
Affected Version: 1.6.4

After I submitted a cl (reviewed and everything), I tried to run "repo abandon
<branchname>", but got the following error

$ repo abandon bug_1740989
error: You have local changes to 'apps/Phone/Foo.java'; cannot switch branches.
Traceback (most recent call last):
 File "/Volumes/AndroidHD/.repo/repo/main.py", line 230, in <module>
   _Main(sys.argv[1:])
 File "/Volumes/AndroidHD/.repo/repo/main.py", line 214, in _Main
   repo._Run(argv)
 File "/Volumes/AndroidHD/.repo/repo/main.py", line 121, in _Run
   cmd.Execute(copts, cargs)
 File "/Volumes/AndroidHD/.repo/repo/subcmds/abandon.py", line 42, in Execute
   project.AbandonBranch(nb)
 File "/Volumes/AndroidHD/.repo/repo/project.py", line 747, in AbandonBranch
   quiet=True)
 File "/Volumes/AndroidHD/.repo/repo/project.py", line 829, in _Checkout
   raise GitError('%s checkout %s ' % (self.name, rev))
error.GitError: platform/apps/Phone checkout refs/remotes/korg/master

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

When there are uncommited changes in a branch, repo checkout <another_branch> fail with an erroneous error

Reported by Marc Blank <[email protected]> on Sat Jul 18 17:08:01 PDT 2009
Source: JIRA REPO-44

When switching branches with repo checkout <another_branch>  while there are
uncommitted changes in the current branch, the error message given is:

error: no project has branch <another_branch>

which is not correct, since there is such a branch.

If I instead use git checkout <another_branch>, I get the correct message:

error: You have local changes to 'somethingorother'; cannot switch branches.

Committing the change and then using repo checkout <another_branch> works...

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

repo should install a pre-rebase hook to prevent rebasing published work

Reported by Shawn Pearce <[email protected]> on Mon Feb 09 10:46:28 PST 2009
Source: JIRA REPO-7

The pre-rebase hook can be used to prevent a user from rebasing changes they
have published to Gerrit.

The refs/published/$branch tip can be used to see what has been published and
forbid rebasing those parts, but we need a way to clear out refs/published if
the change is rejected in Gerrit and the user really wants to do an amend or
rebase to address review comments.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

When prompted to upload a branch, being able to see the diff for reference would be nice

Reported by Christopher Tate <[email protected]> on Fri Jun 05 18:28:29 PDT 2009
Source: JIRA REPO-28

Right now, repo prompts with something like this:

$ repo upload .
Upload project system/core/:
  branch work-on-stuff ( 1 commit, Fri Jun 5 18:20:08 2009 -0700):
         17df71e1 Do some work on some stuff
to https://android-git.corp.google.com/g/Gerrit (y/n)?

At this point in the process, having one last chance to verify what that
actually *is* would be nice.  I'm envisioning a prompt like this:

to https://android-git.corp.google.com/g/Gerrit [ (y)es / (n)o / (s)how ]?

where 's's would do a 'git show' on the relevant SHA, then repeat the upload
prompt.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Python traceback during "repo prune"

Reported by Garret Pick <[email protected]> on Thu Feb 26 11:05:35 PST 2009
Source: JIRA REPO-9

From 
http://groups.google.com/group/repo-discuss/browse_thread/thread/20a4f3fb82f49cf
7
An error I saw from repo prune.  Note that the second time I ran it, it seemed
to work fine.

$ repo prune
Pending Branches

project bionic/
Traceback (most recent call last):
 File "/home/pickgr/master/.repo/repo/main.py", line 202, in <module>
   _Main(sys.argv[1:])
 File "/home/pickgr/master/.repo/repo/main.py", line 186, in _Main
   repo._Run(argv)
 File "/home/pickgr/master/.repo/repo/main.py", line 96, in _Run
   cmd.Execute(copts, cargs)
 File "/home/pickgr/.repo/repo/subcmds/prune.py", line 52, in Execute
 File "/home/pickgr/master/.repo/repo/project.py", line 126, in
commits
   '--')
 File "/home/pickgr/master/.repo/repo/project.py", line 1174, in
rev_list
   p.stderr))
error.GitError: platform/bionic rev-list ('--abbrev=8', '--abbrev-
commit', '--pr

$
$
$ repo prune
$ git status
# Not currently on any branch.
nothing to commit (working directory clean)
$

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

repo scriptability

Reported by Shawn Pearce <[email protected]> on Mon Feb 09 10:54:29 PST 2009
Source: JIRA REPO-8

repo should return useful exit codes and use stdout/stderr in a consistent way
in case someone wants to write a script that calls repo.

In Git we split commands into two different groups:

- plumbing:  These are scriptable commands that offer very small building
blocks of the Git system.  The command line options are usually only
--long-gnu-style and the input/output streams are formatted for easy machine
parsing, not human readability.  The commands, their options and their
stream formats are frozen in stone.

- porcelain: These are commands the human can invoke.  We can change their
options, use short options, have prettier output formats that are less
regular (and more difficult to parse).  These aren't meant to be invoked by
script writers.

We should consider doing the same thing with repo.  Especially since the
repo user interface may change and evolve a bit as we learn more about the
general Android workflow.

In terms of repo (since its all one big Python script) the plumbing commands
may just be small wrappers that convert command line arguments into
parameters for an internal "library" function.  Thus one can script repo by
either importing its library and calling the function directly in Python, or
by executing repo's plumbing command to get to the same function.  Human
commands might call multiple functions, and have a different entry point
that parses the command line arguments differently.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

repo incorrectly runs pager

Reported by Jean-Baptiste Queru <[email protected]> on Tue Mar 31 21:02:35 PDT 2009
Source: JIRA REPO-19

The repo script uses pager, and inherently will produce control character
(coloring) to standard output, even if the output is redirected to another
pipe or script.

This is because the script checks for the terminal presence on FD 0, and in
case of redirection FD 0 is still attached to the terminal.

.repo/repo/pager.py needs to be modified to fix this, replacing isatty(0)
with isatty(1). (Probably, it should be not os.isatty(0) or not os.isatty(1))

(see also http://b.android.com/2004 for original issue)

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

repo should trap connectivity errors and provide a more useful error message, instead of crashin'

Reported by Andrew D. Stadler (Google) <[email protected]> on Wed Aug 12 
23:26:53 PDT 2009
Source: JIRA REPO-45

I tried to do repo upload but I forgot to connect the VPN.  The answer was a
many-line stack trace:

$ repo upload --replace .
Traceback (most recent call last):
  File "/Volumes/src/repo/master/.repo/repo/main.py", line 235, in <module>
    _Main(sys.argv[1:])
  File "/Volumes/src/repo/master/.repo/repo/main.py", line 217, in _Main
    repo._Run(argv)
  File "/Volumes/src/repo/master/.repo/repo/main.py", line 123, in _Run
    cmd.Execute(copts, cargs)
  File "/Volumes/src/repo/master/.repo/repo/subcmds/upload.py", line 313, in
Execute
    self._ReplaceBranch(project_list[0], people)
  File "/Volumes/src/repo/master/.repo/repo/subcmds/upload.py", line 262, in
_ReplaceBranch
    self._UploadAndReport([branch], people)
  File "/Volumes/src/repo/master/.repo/repo/subcmds/upload.py", line 268, in
_UploadAndReport
    branch.UploadForReview(people)
  File "/Volumes/src/repo/master/.repo/repo/project.py", line 155, in
UploadForReview
    people)
  File "/Volumes/src/repo/master/.repo/repo/project.py", line 555, in
UploadForReview
    if branch.remote.ReviewProtocol == 'ssh':
  File "/Volumes/src/repo/master/.repo/repo/git_config.py", line 471, in
ReviewProtocol
    info = urlopen(u).read()
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
urllib2.py", line 121, in urlopen
    return _opener.open(url, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
urllib2.py", line 374, in open
    response = self._open(req, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
urllib2.py", line 392, in _open
    '_open', req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
urllib2.py", line 353, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
urllib2.py", line 1108, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
urllib2.py", line 1075, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error (8, 'nodename nor servname provided, or not
known')>

What's odd is that "repo sync ." does the right thing:
$ repo sync .
ssh: Could not resolve hostname android-git.corp.google.com: nodename nor
servname provided, or not known

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Traceback on repo status in a mirror client

Reported by Shawn Pearce <[email protected]> on Tue Mar 03 12:22:15 PST 2009
Source: JIRA REPO-14
Affected Version: 1.6.1

Create a mirror repository ("repo init --mirror").

% repo status
Traceback (most recent call last):
 File "/Volumes/Code - Case Sensitive/Android-Mirror/.repo/repo/main.py", line
202, in <m
   _Main(sys.argv[1:])
 File "/Volumes/Code - Case Sensitive/Android-Mirror/.repo/repo/main.py", line
186, in _M
   repo._Run(argv)
 File "/Volumes/Code - Case Sensitive/Android-Mirror/.repo/repo/main.py", line
96, in _Ru
   cmd.Execute(copts, cargs)
 File "/Volumes/Code - Case Sensitive/Android-Mirror/.repo/repo/subcmds/
status.py", line
   project.PrintWorkTreeStatus()
 File "/Volumes/Code - Case Sensitive/Android-Mirror/.repo/repo/project.py",
line 299, in
   if not os.path.isdir(self.worktree):
 File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
posixpath.p
   st = os.stat(path)
TypeError: coercing to Unicode: need string or buffer, NoneType found

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

python stack trace when manifest project branch is broken

Reported by Shawn Pearce <[email protected]> on Tue Apr 14 18:06:31 PDT 2009
Source: JIRA REPO-24
Affected Version: 1.6.5

If the manifest project is not on a "proper" branch, we get a stack trace from
just about every command:

$ repo start gl
frameworks/base hardware/libhardware system/core vendor/htc/dream
vendor/htc/sapphire vendor/qcom/proprietary
Traceback (most recent call last):
 File "/Volumes/sources/git/android/master/.repo/repo/main.py", line 230, in ?
   _Main(sys.argv[1:])
 File "/Volumes/sources/git/android/master/.repo/repo/main.py", line
214, in _Main
   repo._Run(argv)
 File "/Volumes/sources/git/android/master/.repo/repo/main.py", line
121, in _Run
   cmd.Execute(copts, cargs)
 File "/Volumes/sources/git/android/master/.repo/repo/subcmds/start.py",
line 51, in Execute
   for project in self.GetProjects(args[1:]):
 File "/Volumes/sources/git/android/master/.repo/repo/command.py",
line 60, in GetProjects
   all = self.manifest.projects
 File "/Volumes/sources/git/android/master/.repo/repo/manifest.py",
line 148, in projects
   self._Load()
 File "/Volumes/sources/git/android/master/.repo/repo/manifest.py",
line 176, in _Load
   if b.startswith(R_HEADS):
AttributeError: 'NoneType' object has no attribute 'startswith'

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Tag feature to allow named and reproducible versions of the global code base to be defined

Reported by mark gross <[email protected]> on Fri Feb 06 15:42:17 PST 2009
Source: JIRA REPO-1
Environment: Linux and mac os hosts.

Having named (tagged) versions of the core Android Open source project code is
needed for folks to build branches or patchsets of experimental work of the
core code base.

Of course the CTT needs to lay down tags periodically on known good enough
versions for everyone to use as baselines.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

Allow manifest overlays/superclasses

Reported by Brian Swetland <[email protected]> on Mon Feb 09 10:21:23 PST 
2009
Source: JIRA REPO-3

Quick fix:
- allow local_manifest.xml to indicate items to exclude from the main
manifest.xml

Best fix:
- allow a manifest.xml to specify that it's based on (or a subclass of, etc)
another manifest
- allow a manifest.xml to specify items to exclude from the manifests it
extends

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

improvements to the way we sync to a particular build

Reported by Andrew D. Stadler (Google) <[email protected]> on Fri Jun 12 
15:07:05 PDT 2009
Source: JIRA REPO-38

This is a feature request that I will actually try hacking myself, but filing
the FR so it can be tracked, commented on, etc.

The current workflow:
  1. get manifest
  2. copy to special location
  3. repo init -m manifest-name
  4. repo sync
  5. to return to "latest", repo init -m default.xml

Is a heck of a lot more steps than our old friend p4 sync //branches/...@CL#

I propose the following changes that can be taken in parts or together to
improve the process at each step.

* The argument should be a simple filename.  This has a dual benefit:  1.
allows you to download the manifest anywhere 2. you can type the command using
completion instead of a full retype.  The code could simply pick up the file
and copy it into the correct directory, and then proceed using the existing
init code.

* Any time we repo sync and the manifest is not default.xml, print a warning.
This helps with the "why am I not getting anything" confusion, when you forgot
that you did this earlier.

* Add -m to repo sync and insert "repo init -m" step if found.  This turns two
commands into one.

* For extra credit, convert build # into URL and download the manifest
automatically

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

repo should automatically use SSH ControlMaster when possible

Reported by Shawn Pearce <[email protected]> on Mon Mar 02 16:48:44 PST 2009
Source: JIRA REPO-11

OpenSSH on UNIX platforms can support multiplexing multiple ssh connections
onto a single TCP stream, saving the startup and teardown costs.

For applications like repo, fetching 120+ projects over SSH require forking
120+ ssh clients, probably all pointing at the same server.  Most of the time
is spent starting the SSH connection.  By using a ControlMaster connection
opened ahead of time these 120+ connections can send all of their data through
an existing stream, significantly reducing the wall-clock time required for a
no-op "repo sync".

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

Allow switching between tags

Reported by Naseer Ahmed <[email protected]> on Wed May 06 05:55:27 PDT 
2009
Source: JIRA REPO-32
Environment: All

Allow switching between tags to go back to older releases easily. The working
tree (or default remote tracking branch) should update to the older/newer tag
as needed and projects not present in the older tag should be deleted/moved to
temp location.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Unfriendly errors when manifest typos are made

Reported by Brian Swetland <[email protected]> on Mon Feb 09 10:17:17 PST 
2009
Source: JIRA REPO-2

I had this in my local-manifest.xml:
 <remove-project name="kernel/common"/>
 <project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-
htc-2.6.24"/>

Which was a typo (I meant ...25):
bulgaria% repo sync
remote: Counting objects: 5319, done.
remote: Compressing objects: 100% (1260/1260), done.
remote: Total 4985 (delta 4119), reused 4538 (delta 3701)
Receiving objects: 100% (4985/4985), 1.07 MiB | 994 KiB/s, done.
Resolving deltas: 100% (4119/4119), completed with 200 local objects.
From git://android-git/public/kernel/msm
 * [new branch]      android-msm-2.6.25 -> korg/android-msm-2.6.25
 * [new branch]      android-msm-2.6.27 -> korg/android-msm-2.6.27
 * [new branch]      android-msm-htc-2.6.25 -> korg/android-msm-htc-2.6.25
 * [new branch]      msm-2.6.25 -> korg/msm-2.6.25
Traceback (most recent call last):
 File "/scratch/open/.repo/repo/main.py", line 202, in <module>
   _Main(sys.argv[1:])
 File "/scratch/open/.repo/repo/main.py", line 186, in _Main
   repo._Run(argv)
 File "/scratch/open/.repo/repo/main.py", line 96, in _Run
   cmd.Execute(copts, cargs)
 File "/scratch/open/.repo/repo/subcmds/sync.py", line 106, in Execute
   if not project.Sync_LocalHalf():
 File "/scratch/open/.repo/repo/project.py", line 591, in Sync_LocalHalf
   lost = self._revlist(not_rev(rev), HEAD)
 File "/scratch/open/.repo/repo/project.py", line 1000, in _revlist
   return self.work_git.rev_list(*args)
 File "/scratch/open/.repo/repo/project.py", line 1147, in rev_list
   p.stderr))
error.GitError: kernel/msm rev-list (u'^refs/remotes/korg/android-msm-
htc-2.6.24', 'HEAD'): fatal: bad revision '^refs/remotes/korg/android-msm-
htc-2.6.24'


after fixing the manifest, I got:

bulgaria% repo sync
error: refs/remotes/m/master points nowhere!
info: [kernel/msm] Discarding 2 commits


which seems to have fixed things, but sounded like it had a problem.  later
repo syncs did not fail

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

If "repo start newbranch" fails partway through, recovery is annoying

Reported by Christopher Tate <[email protected]> on Fri Apr 10 11:29:10 PDT 2009
Source: JIRA REPO-22

Here's the situation I was in that I had to recover from:

0. I was working in a topic branch called "oldbranch", and in one package I
had made some edits that had not yet been committed.
1. From the top level, I typed "repo start newbranch"
2. The branch was successfully started and made current in fifty-ish packages,
but then when it got to the package in which I had uncommitted edits, branch
creation failed and repo errored out.

At this point, the repo was in a badly mixed state:  newbranch had been
created and made current in half the repository, but oldbranch was still
current in the other half.  The desired final state here was that newbranch be
created and made current in the entire repo.  Here's what I did to recover:

3. cd to the package in which I had uncommitted edits, "git commit -a" to
commit them.
4. cd back to the top of the repo, and reran "repo start newbranch".  This
errored out immediately, saying that the branch already existed.
5. I typed "repo abandon newbranch" to blow away the new branch in all the
packages in which it had been successfully created
6. I then typed "repo start newbranch" again, which finally set up the new
branch everywhere.

IMHO the biggest problem here was that Step 4 failed; I don't see why it
should be an error to attempt to (create and make current) a branch that
happens to already exist in some packages.  At worst this might be a noop,
right?  And the rest of the time, it would do exactly what I was attempting:
taking a partial-branch-existence state and making it more universal.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

upload: remove --replace option

Since Gerrit Code Review supports Change-Id now, there is no sound reason
for the --replace option with `repo upload`.  Remove it to reduce the code
complexity for users.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 11:17

repo status doesn't warn about missing projects

Reported by Shawn Pearce <[email protected]> on Mon Feb 09 10:43:15 PST 2009
Source: JIRA REPO-6

If a project hasn't been created by "repo sync" yet "repo status" should at
least print a message to let the user know the project is missing and needs to
be created by "repo sync".

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

repo should remove projects no longer in manifest

Reported by Shawn Pearce <[email protected]> on Sat Feb 28 10:40:55 PST 2009
Source: JIRA REPO-10

From http://code.google.com/p/android/issues/detail?id=1675

repo should delete source directories of projects that get deleted from the
manifest

Repro:
-start with a master branch synced before cupcake was merged into master
-repo sync to the latest (which includes cupcake, and where a project was
moved around)
-try to build

Observed:
the old location of the project that was moved doesn't get cleared, causing
the build system to include makefiles for both the old and new location,
which creates a conflict and causes the build to fail.

Workaround:
Manually delete the offending directory

Note:
repo probably doesn't need full automation to detect the spurious
directories. The manifest could contain a list of known old project
locations that need to be deleted if they're present.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

repo branches doesn't work for me

Reported by Ken Shirriff <[email protected]> on Fri Jun 26 16:42:29 PDT 2009
Source: JIRA REPO-41
Environment: Linux jaywalk.mtv.corp.google.com 2.6.24-gg24-generic #1 SMP Wed 
Apr 22 21:48:06 PDT 2009 x86_64 GNU/Linux

repo branches doesn't display useful output for me.  Andy Stadler says my
output isn't like his, so there must be a bug.

Specifically, it doesn't always display the package that has the branch.  E.g.

jaywalk:~/donut2$ repo branches
*  calendar                  | in frameworks/base
   tmp                       |

It turns out that tmp is in packages/apps/Calendar and packages/providers/
CalendarProvider, but repo branches doesn't tell me that.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Cygwin Python tries to use SSH control master

Reported by Shawn Pearce <[email protected]> on Thu Apr 23 16:27:37 PDT 2009
Source: JIRA REPO-29
Affected Version: 1.6.7.2
Environment: Cygwin/Vista

Ynder Cygwin/Vista is that I get this error:

$ repo sync
mm_receive_fd: no message header
muxserver_accept_control: failed to receive fd 0 from slave
ssh_msg_recv: read: header
muxclient: msg_recv
fatal: The remote end hung up unexpectedly
error: Cannot fetch manifests

Setting GIT_SSH=ssh works around.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

atomic sync support

Finish the git submodule atomic sync support that is currently sitting
at the tip of the master branch.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 11:20

repo should make it easy to make a branch "ready for upload"

Reported by Dave Bort <[email protected]> on Mon Feb 09 10:36:52 PST 2009
Source: JIRA REPO-4

I've got a commit [in the repo development repository], and git diff m/
default.. shows the deltas I'm expecting, but "repo upload" just gives me "no
branches ready for upload".

$ git branch
* master

--
I'll bet its because .git/config doesn't have any remote or merge entries
listed for the branch, because you didn't create it with --track.

Make a new branch and merge your master branch into it:

 $ git branch --track for-upload m/default
 $ git checkout for-upload
 $ git merge master
 $ repo upload

This is why we have repo start (more or less), its shorter than git branch --
track.

--
Repo should provide a way to make a branch "ready for upload", and the "no
branches ready for upload" message should tell the user how to use the new
feature to recover from that state.

--
I was thinking that

repo start <branch> <sha1>

could do the repo start, and then the git reset --hard <sha1>.

It might also be nice to have a -p option (or some other way) of having it do
that on just one project.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

Traceback on manifest parse failure

Reported by Shawn Pearce <[email protected]> on Tue Mar 03 12:17:23 PST 2009
Source: JIRA REPO-13
Affected Version: 1.6.1

If you have a manifest with no default element, and missing the necessary
revision or remote attributes on a project, a error.ManifestParseError is
raised, and it's not caught.

When it aborts there, it fails to update its clone of the manifest, so it'll
never get your fixes to add the missing bits, without manually poking at .repo

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:09

Enable HTTP proxy support for $review/ssh_info URLs

Reported by Shawn Pearce <[email protected]> on Mon May 04 08:24:19 PDT 2009
Source: JIRA REPO-31
Affected Version: 1.6.7.2

Users behind a firewall might be able to access port 29418 directly, but not
443 for HTTPS.  repo should support using an HTTP proxy to communicate with
the review server's /ssh_info URL during repo upload.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

repo sync has all the wrong output and no options

Reported by Andrew D. Stadler (Google) <[email protected]> on Fri May 22 
16:32:51 PDT 2009
Source: JIRA REPO-34

The output of repo sync is entirely internal and quite repetitive:

$ repo sync
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 11 (delta 6), reused 3 (delta 0)
Unpacking objects: 100% (11/11), done.
From git://android.git.kernel.org/tools/repo
   2f968c9..498a0e8  master     -> origin/master
   2f968c9..498a0e8  stable     -> origin/stable
 * [new tag]         v1.6.7.5   -> v1.6.7.5
From git://android.git.kernel.org/tools/repo
 * [new tag]         v1.6.7.4   -> v1.6.7.4
remote: Counting objects: 78, done
remote: Compressing objects: 100% (63/63)
Unpacking objects: 100% (63/63), done.
From ssh://android-git.corp.google.com:29418/platform/manifest
   d2f06d9..d9584ca  cupcake    -> origin/cupcake
   78ef62e..9d863ff  donut      -> origin/donut
   22f7151..fc3614e  donut-release -> origin/donut-release
 * [new branch]      eclair-release -> origin/eclair-release
   8c6d287..c122554  master     -> origin/master
   9b08529..8d04dec  master_gl  -> origin/master_gl
remote: Counting objects: 2126, done
remote: Compressing objects: 100% (45/45)
Unpacking objects: 100% (45/45), done.

This kind of stuff isn't really interesting to the "average user" who just
wants latest files.  Can you put it under a -v type option?

Second, the final step is not verbose enough:

Syncing work tree:  79% (120/151)

And this is exactly where the "average user" would like to see *more* output:
What files were updated on my machine?

Can you please change repo sync to be more like this:
$ repo sync
Updating repositories....   (maybe do a live % thing here?)
Syncing work tree:
updating:  packages/apps/Calendar/myActivity.java
updating:  packages/apps/Email/providers.xml
..etc...
$

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Make "repo forall" more resilient to missing projects, repo synced to older manifest, etc.

Reported by Andrew D. Stadler (Google) <[email protected]> on Mon Jul 13 
22:34:38 PDT 2009
Source: JIRA REPO-43

Forwarded conversation
Subject: can't obtain weekly report while synced to an older build
------------------------
Original report:

$ repo forall -pc git log --all --author=stadler --since=8.days.ago
Traceback (most recent call last):
 File "/Volumes/src/repo/master/.repo/repo/main.py", line 235, in <module>
   _Main(sys.argv[1:])
 File "/Volumes/src/repo/master/.repo/repo/main.py", line 217, in _Main
   repo._Run(argv)
 File "/Volumes/src/repo/master/.repo/repo/main.py", line 123, in _Run
   cmd.Execute(copts, cargs)
 File "/Volumes/src/repo/master/.repo/repo/subcmds/forall.py", line
187, in Execute
   stderr = stderr)
 File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
subprocess.py",
line 593, in __init__
   errread, errwrite)
 File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
subprocess.py",
line 1079, in _execute_child
   raise child_exception
OSError: [Errno 2] No such file or directory:
'/Volumes/src/repo/master/external/bluetooth/bluez'


Note:  This is happening while I am synced to an earlier build # (the build
was broken), which is probably related.

The build has turned green since, so I'm trying an init to default.xml, repo
sync, and repeat the command.  But it seems like getting weekly stats should
work even if one is temporarily parked on an older build.

Should I file a bug?  Workaround?

--Andy

p.s.  Confirmed:  after repo sync, it works properly.

----------
Response from Shawn:

Feature request please.  We should have been able to execute this
against a bare repository and not a working directory (e.g. with a
--bare flag) and we should have been able to continue (but with an
error message to stderr) even though one project doesn't exist.  In a
case of "what have I done the past 8 days" skipping a project you do
not have (but with an one line error/warning message) is probably OK,
you don't have it so you didn't work in it.  In other cases it may be
important, e.g. grep'ing for something about bluez and you don't have
bluez is a certain problem.  :-)

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

Pager is invoked inappropriately

Reported by Christopher Tate <[email protected]> on Mon Apr 06 16:50:26 PDT 2009
Source: JIRA REPO-20

When a repo command expects to invoke a pager (e.g. "repo status"), the pager
is run even when the underlying operation produces no output.  This has the
effect of unexpectedly jumping the command line to the bottom of the terminal
window, seeming to insert however many blank lines were necessary to reach
that point.

Original issue reported on code.google.com by [email protected] on 24 Sep 2009 at 9:10

manifest/project.list shouldn't die if project doesn't exist

I get the following crash if I have already deleted
packages/apps/SOME_PACKAGE locally. I think it should just continue on, as
it's just going to try to delete it anyway.

This is after removing packages/apps/SOME_PACKAGE from manifest.xml and
re-syncing.

Fetching projects: 100% (163/163), done.
Traceback (most recent call last):
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/main.py", line 235,
in <module>
    _Main(sys.argv[1:])
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/main.py", line 217,
in _Main
    repo._Run(argv)
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/main.py", line 123,
in _Run
    cmd.Execute(copts, cargs)
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/subcmds/sync.py",
line 229, in Execute
    if self.UpdateProjectList():
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/subcmds/sync.py",
line 152, in UpdateProjectList
    if project.IsDirty():
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/project.py", line
289, in IsDirty
    '--refresh')
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/project.py", line
1303, in runner
    capture_stderr = True)
  File "/home/USERNAME/projects/PROJECTNAME/.repo/repo/git_command.py",
line 189, in __init__
    raise GitError('%s: %s' % (command[1], e))
error.GitError: update-index: [Errno 2] No such file or directory:
'/home/USERNAME/projects/PROJECTNAME/packages/apps/SOME_PACKAGE'


Original issue reported on code.google.com by [email protected] on 25 Sep 2009 at 7:25

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.