Permalink
Commits on Jul 15, 2010
  1. sync: Try fetching a tag as a last resort before giving up

    If a tagged commit is not reachable by the fetch refspec configured
    for the git (usually refs/heads/*) it will not be downloaded by
    'git fetch'.  The tag can however be downloaded with 'git fetch
    --tags' or 'git fetch tag <tag>'.
    
    This patch fixes the situation when a tag is not found after a
    'git fetch'. Repo will issue 'git fetch tag <tag>' before giving
    up completely.
    
    Change-Id: I87796a5e1d51fcf398f346a274b7a069df37599a
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    jgust committed with spearce Jun 17, 2010
  2. rebase: Automatically rebase branch on upstrea

      Usage: repo rebase [[-i] <project>...]
    
    Rebases the current topic branch of the specified (or all)
    projects against the appropriate upstream.
    
    Note: Interactive rebase is currently only supported when
    exactly one project is specified on the command line.
    
    Change-Id: I7376e35f27a6585149def82938c1ca99f36db2c4
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    dsandler committed with spearce Apr 1, 2010
  3. upload: Automatically --cc folks in review.URL.autocopy

    The upload command will read review.URL.autocopy from the project's
    configuration and append the list of e-mails specified to the
    --cc argument of the upload command if a non-empty --re argument
    was provided.
    
    Change-Id: I2424517d17dd3444b20f0e6a003be6e70b8904f6
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    Ben Komalo committed with spearce Jul 15, 2010
Commits on Jun 18, 2010
  1. Fix format string bugs in grep

    This fixes some format string bugs in grep which cause repo to with
    "TypeError: not enough arguments for format string" when grepping and
    the output contains a valid Python format string.
    
    Change-Id: Ice8968ea106148d409490e4f71a2833b0cc80816
    yath committed with spearce Jun 2, 2010
Commits on Jun 8, 2010
  1. Do not invoke ssh with -p argument when no port has been specified.

    This change allows local SSH configuration to choose the port number
    to use when not explicitly set in the manifest.
    
    (cherry picked from commit 4c0f670)
    
    Change-Id: Ibea99cfe46b6a2cc27f754cc3944a2fe10f6fda4
    jasta committed with spearce Aug 16, 2009
Commits on May 28, 2010
  1. Allow files to be copied into new folders

    Change-Id: I7f169e32be5a4328bb87ce7c2ff4b6529e925126
    buckett committed with spearce Jul 11, 2009
Commits on May 27, 2010
  1. Do not emit progress if stderr is not a tty

    Avoids logging progress data into cron logs, etc.
    
    Suggested-by: Michael Richardson <mcr@sandelman.ottawa.on.ca>
    Change-Id: I4eefa2c282f0ca0a95a0185612b52e2146669e4c
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed May 27, 2010
  2. sync: support --jobs to fetch projects simultaneously

    This patch does two things for being compatibile with
    those Python which are built without threading support:
    
    1. As the Python document and Shawn suggested, import dummy_threading
       when the threading is not available.
    
    2. Reserve the single threaded code and make it default.
       In cases the --jobs does not work properly with dummy_threading,
       we still have a safe fallback.
    
    Change-Id: I40909ef8e9b5c22f315c0a1da9be38eed8b0a2dc
    roylee17 committed with spearce May 8, 2010
Commits on May 17, 2010
  1. Aliasing sync -s to 'smartsync'

    This alias will let people use this command without having to
    remember the option.
    
    Change-Id: I3256d9e8e884c5be9e77f70e9cfb73e0f0c544c6
    Nico Sallembien committed with spearce May 11, 2010
Commits on May 12, 2010
  1. sync: kill git fetch process before SSH control master process

    If the SSH control master process is killed while an active git
    fetch is using its network socket, the underlying SSH client may
    not realize the connection was broken.  This can lead to both the
    client and the server waiting indefinitely for network messages
    which will never be sent.
    
    Work around the problem by keeping track of any processes that use
    the tunnels we establish.  If we are about to kill any of the SSH
    control masters that we started, ensure the clients using them are
    successfully killed first.
    
    Change-Id: Ida6c124dcb0c6a26bf7dd69cba2fbdc2ecd5b2fc
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed May 12, 2010
Commits on May 5, 2010
  1. upload: Move confirmation threshold from 3 to 5 commits

    Change-Id: I7275d195cf04f02694206b9f838540b0228ff5e1
    Dan Morrill committed with spearce May 5, 2010
  2. upload: Confirm unusually large number of uploaded commit

    Add a sentinel check to require a second explicit confirmation if the
    user is attempting to upload (or upload --replace) an unusually large
    number of commits.  This may help the user to catch an accidentally
    incorrect rebase they had done previously.
    
    Change-Id: I12c4d102f90a631d6ad193486a70ffd520ef6ae0
    Dan Morrill committed with spearce May 4, 2010
Commits on May 4, 2010
  1. branches: Enable output of multiple projects

    Fixes a bug introduced by 498a0e8
    ("Make 'repo branches -a' the default behavior").
    
    Change-Id: Ib739f82f4647890c46d7c9fb2f2e63a16a0481de
    Pär Åsfält committed with spearce Sep 5, 2009
Commits on Apr 27, 2010
  1. Rename _ssh_sock() to fix code style issue.

    Since _ssh_sock is imported out of the git_command module, the leading
    underscore should be removed from the function name.
    Nico Sallembien committed Apr 27, 2010
Commits on Apr 26, 2010
  1. Override manifest file only after it is fully written to disk.

    We called "Override()" before closing the file passed in argument.
    
    Change-Id: I15adb99deb14297ef72fcb1b0945eb246f172fb0
    Nico Sallembien committed Apr 20, 2010
  2. Strip refs/heads in the branch sent to the manifest server.

    The manifest server doesn't want to have refs/heads passed to it, so
    we need to strip that when the branch contains it.
    
    Change-Id: I044f8a9629220e886fd5e02e3c1ac4b4bb6020ba
    Nico Sallembien committed Apr 26, 2010
Commits on Apr 14, 2010
  1. sync: Safely skip already deleted projects

    Do not error if a project is missing on the filesystem, is deleted
    from manifest.xml, but still exists in project.list.
    
    Change-Id: I1d13e435473c83091e27e4df571504ef493282dd
    bnovc committed with spearce Sep 26, 2009
Commits on Apr 13, 2010
  1. Add a 'smart sync' option to repo sync

    This option allows the user to specify a manifest server to use when
    syncing. This manifest server will provide a manifest pegging each
    project to a known green build. This allows developers to work on a
    known good tree that is known to build and pass tests, preventing
    failed builds to hamper productivity.
    
    The manifest used is not "sticky" so as to allow subsequent
    'repo sync' calls to sync to the tip of the tree.
    
    Change-Id: Id0a24ece20f5a88034ad364b416a1dd2e394226d
    Nico Sallembien committed Apr 6, 2010
Commits on Apr 1, 2010
  1. Allow 'y' as a valid response when confirming identity

    I prefer having to type only one character rather than all three,
    and it seems like other confirmation prompts use the same style.
    Nico Sallembien committed Apr 1, 2010
Commits on Mar 7, 2010
  1. Merge branch 'stable'

    * stable:
      Automatically install Gerrit Code Review's commit-msg hook
      Fail sync when encountering "N commits behind."
      Check that we are not overwriting a local repository when syncing.
      Honor url.insteadOf when setting up SSH control master connection
      sync: Fix split call on malformed email addresses
      Fixing project renaming bug.
    
    Conflicts:
    	hooks/commit-msg
    	project.py
    	subcmds/sync.py
    
    Change-Id: I5eaf8fef8cbe4a95d124368112293a9ca64325bf
    spearce committed Mar 7, 2010
  2. Automatically install Gerrit Code Review's commit-msg hook

    Most users of repo are also using Gerrit Code Review, and will want
    the commit-msg hook to be automatically installed into their local
    projects so that Change-Ids are assigned when commits are created,
    not when they are first uploaded.
    
    (cherry picked from commit a949fa5
     but squashed with latest hook script from version 2.1.2)
    
    Change-Id: Ie68b2d60ac85d8c2285d2e1e6a4536eb76695547
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 23, 2009
Commits on Mar 4, 2010
  1. Fail sync when encountering "N commits behind."

    This is almost always something the user needs to address
    before continuing work, so promoting it to a failure (rather
    than simply an informational message) seems the right way to
    go. As a side-effect, repo will now exit with a non-zero
    status code in this situation, so pipelines of the form
    `repo sync && make` will fail if there are branches that
    are stalled due to uploaded but unmerged patches.
    Daniel Sandler committed with dsandler Mar 2, 2010
Commits on Jan 20, 2010
  1. Check that we are not overwriting a local repository when syncing.

    If a local git repository exists within the same folder as a new project that
    is added, when the user syncs the repo, the sync will overwrite the local
    files under the project's .git repository with its own symlinks. Make sure
    that we do not overwrite 'normal' files in repo and throw an error when
    that happens.
    Nico Sallembien committed Jan 20, 2010
Commits on Jan 4, 2010
  1. Honor url.insteadOf when setting up SSH control master connection

    Repo can now properly handle url.insteadOf sections in the
    user's ~/.gitconfig file.  This means that a user can now enjoy
    the master-ssh functionality even if he/she uses insteadOf's in
    ~/.gitconfig to rewrite git:// URLs to ssh:// style URLs.
    
    Change-Id: Ic0f04a9c57206a7b89eb0f10bf188c4c483debe3
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    Ulrik Sjolin committed with spearce Jan 3, 2010
Commits on Dec 31, 2009
  1. sync: Fix split call on malformed email addresses

    If an email address in a commit object contains a space, like a few
    malformed ones on the Linux kernel, we still want to split only on
    the first space.
    
    Unfortunately my brain was too damaged by Perl and originally wrote
    the split asking for 2 results; in Python split's argument is how
    many splits to perform.  Here we want only 1 split, to break apart
    the commit identity from the email address on the same line.
    
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Dec 31, 2009
Commits on Dec 10, 2009
  1. Fixing project renaming bug.

    This bug happens when a project gets added to the manifest, and
    then is renamed. Users who happened to have run "repo sync" after
    the project was added but before the rename happened will try to
    read the data from the old project, as the manifest was only updated
    after all projects were updated successfully.
    Nico Sallembien committed Dec 7, 2009
Commits on Sep 9, 2009
  1. Fix to display the usage message of the command download when the user

    don't provide any arguments to 'repo download'.
    
    Signed-off-by: Thiago Farina <thiago.farina@gmail.com>
    thiagofarina committed Sep 9, 2009
Commits on Aug 25, 2009
  1. commit-msg: Don't create message with only Change-Id

    If a user aborts a commit, the commit-msg hook is still called,
    but with an empty file.  We need to leave the empty file alone.
    
    Change-Id: I13766135dac267823cb08ab76f67d2000ba2d1ce
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 25, 2009
Commits on Aug 23, 2009
  1. commit-msg: Update the commit message hook

    This version fixes a bug where Change-Id lines become the subject
    line, if the subject used a pattern like the subject of this
    message does.
    
    Change-Id: I7f7e0363091d03eb05dead2992fc19763214de65
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 23, 2009
  2. forall: Silently skip missing projects

    If a project is missing locally, it might be OK to skip over it
    and continue running the same command in other projects.
    
    Bug: REPO-43
    Change-Id: I64f97eb315f379ab2c51fc53d24ed340b3d09250
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 23, 2009
  3. upload: Catch and cleanly report connectivity errors

    Instead of giving a Python backtrace when there is a connectivity
    problem during repo upload, report that we cannot access the host,
    and why, with a halfway decent error message.
    
    Bug: REPO-45
    Change-Id: I9a45b387e86e48073a2d99bd6d594c1a7d6d99d4
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 23, 2009
  4. upload: Document --replace is deprecated

    Change-Id: I52715bcfec9c038d0e02505aa7e4054ebc0434aa
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 23, 2009
  5. Automatically install Gerrit Code Review's commit-msg hook

    Most users of repo are also using Gerrit Code Review, and will want
    the commit-msg hook to be automatically installed into their local
    projects so that Change-Ids are assigned when commits are created,
    not when they are first uploaded.
    
    Change-Id: Ide42e93b068832f099d68a79c2863d22145d05ad
    Signed-off-by: Shawn O. Pearce <sop@google.com>
    spearce committed Aug 23, 2009
Commits on Aug 17, 2009
  1. Merge change 11206

    * change 11206:
      Do not invoke ssh with -p argument when no port has been specified.
    spearce committed Aug 17, 2009
Commits on Aug 16, 2009
  1. Do not invoke ssh with -p argument when no port has been specified.

    This change allows local SSH configuration to choose the port number to
    use when not explicitly set in the manifest.
    jasta committed Aug 16, 2009