Commit Graph

197 Commits (08218ed6c4c327da1b9888a9d8bb103f4f470e3f)

Author SHA1 Message Date
ilevy@chromium.org 3534aa56f4 Allow gclient clone in non-empty directories
Add an option in DEPS files to clone a project into a temp dir
and then copy into expected final dir.  This allows checking out a
git repo into a folder which is non-empty. It is useful for projects
that are embedded in src/ but want to specify the revision of
src/ in the embedded project (such as android private).

BUG=165280

Review URL: https://chromiumcodereview.appspot.com/19359002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@212720 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 578e5e548f Catch and print OSError instead of Exception.
Also open the altfile with 'w' because we assume ownership over the object
alternates. The logic to correctly support other alternates would be quite
complex, so don't even imply support.

R=maruel@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/19777004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@212426 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 976a14dc97 When switching to/from a cache git dir, try to reuse as much data as possible.
R=szager@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/18768004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@212140 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org ecb7542302 Get rid of place-holder for commit-msg hook.
This caused problems for repo-based projects that need to install the
standard Change-Id commit-msg hook.

With the commit-msg hook gone, we can also reinstate the --template
argument to 'git clone'.

BUG=235215
R=iannucci@chromium.org, ilevy@chromium.org, maruel@chromium.org

Review URL: https://codereview.chromium.org/18083033

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@211464 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org 3ce4184f8c Document the use of GIT_ASKPASS and SSH_ASKPASS.
BUG=
R=dpranke@chromium.org

Review URL: https://codereview.chromium.org/18851004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@211148 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org 7f834ad2f1 Do not prompt for passwords
Forcing function for developers to create a .netrc file.
BUG=

Review URL: https://codereview.chromium.org/18949002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@210686 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
joi@chromium.org f10ffa9069 Set timeout before killing a process to 30 times the 30-second nag
timer, i.e. ~900 seconds.

This should at least help make 'fetch chromium' slightly more reliable
over somewhat slow connections.

BUG=230691,247173
R=rogerta@chromium.org

Review URL: https://codereview.chromium.org/18150002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@210190 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 396e1a6d9e If we're running in nohooks mode, don't bother to accumulate file_list in gclient.
This enables significant time savings, especially since file_list only exists to
enable file-specific hooks (which, AFAIK, nothing actually uses). On a z620
(linux) using the cached git repos, a first-time `gclient sync --nohooks` takes:
  * (with)    131.06s user 14.10s  system 117% cpu 2:03.89 total
  * (without) 482.13s user 189.35s system 144% cpu 7:45.63 total

This change makes nohooks cause file_list to be None if we don't need to
accumulate it, and updates GitWrapper and SvnWrapper appropriately.

R=szager@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/18541006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@210026 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 53456aa2a9 Add a git cache for gclient sync operations.
Instead of cloning straight into place, clones are made to a global cache dir,
and then local (using --shared) clones are made from the cache to the final
resting place. This means the 'final' clones are full repos with no shenanigans,
meaning that branches, commits, etc. all work, which should allow the rest of
the gclient ecosystem to work without change as well.

The primary benefit is, of course, reduced network IO, and a much lower cost for
'clobber' operations (assuming we don't clobber the cache). It also means that
a given bot can have a greater number of checkouts, since the entire git history
will only be stored once per machine, instead of once per checkout.

R=dpranke@chromium.org, szager@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/18328003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@210024 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org a41249c2b3 Misc gclient cleanup
- Use config --local for properties that should be local.
- Remove git fetch retry logic, it should not be necessary
  with the googlesource hosts.
- Include .strip() in GIT.Capture, simplifying other calls.
- Safer testing of whether dep revision is a sha.
- Fix refs/remotes/ DEPS branch detection

Review URL: https://chromiumcodereview.appspot.com/18262002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@209825 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org b837688ee6 Set core.deltaBaseCacheLimit on fetch-type operations in gclient.
R=dpranke@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/18269002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@209483 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org d4fffee1c5 Add --upstream option to gclient to scrape git checkouts back to upstream state.
This will be used on the bots when calling apply_patch, which commits to git
repos.

R=dpranke@chromium.org,szager@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/18006002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@209040 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
xusydoc@chromium.org c376171c1b Repair broken git checkouts caused by aborting git clone.
BUG=248384

Review URL: https://chromiumcodereview.appspot.com/16763004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@205692 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
xusydoc@chromium.org 885a960ba2 Don't delete directories that have been superseded by a broader checkout.
BUG=237388

Review URL: https://chromiumcodereview.appspot.com/14583004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@203384 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org 41da24bfb6 Set default nag_timer=6, and make it disable-able.
BUG=242220

Review URL: https://codereview.chromium.org/15367008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@201859 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org f6f5840276 Fix gclient sync 'dontswitchurl' url stickiness
._Capture throws exception on non-zero status, switch to
subprocess2 capture method. Switch magic value to dontswitchurl.

BUG=241907
R=dpranke@chromium.org, maruel@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15325003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@201397 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
bratell@opera.com 18fa4542d8 Don't "hang" gclient if fast-forward is not possible.
As noticed in the TODO, raw_input (used by ask_for_data) works badly
on background threads. On my Windows it doesn't even print the prompt which
makes it hard to interact with it.

Better to just abort and tell the user of gclient how to proceed.

BUG=

Review URL: https://chromiumcodereview.appspot.com/15421005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@201295 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org 6bb0c6e27f Add option to prevent gclient from changing remote
Allow users to set a git config entry which stops
gclient from messing with remote.origin.url. Useful
for using experimental repos.

Review URL: https://chromiumcodereview.appspot.com/14731015

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@199532 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org 12b07e7e55 Refactor nag functionality in to NagTimer class.
Add default 30 second nag timer to gclient subprocesses.

BUG=227537

Review URL: https://chromiumcodereview.appspot.com/14826003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@198207 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org ee10d7d79a Revert http://crrev.com/195336
BUG=235215

Review URL: https://chromiumcodereview.appspot.com/13890010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@196259 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
digit@chromium.org dc112ac587 Remove gclient_utils.RemoveDirectory().
The 'RemoveDirectory()' function in gclient_utils is deprecated and
rmtree() should be used instead for consistency.

This patch modifies all clients in depot_tools to use rmtree() instead
and removes the RemoveDirectory function.

+ The SVNWrapperTestCase.testRevertNoDotSvn() mocking
  expectation has been slightly changed. This was required
  because the test invokes code that used to call
  gclient_utils.RemoveDirectory() directly, while only
  gclient_utils.rmtree() was mocked.

BUG=NONE
R=maruel@chromium.org, ilevy@chromium.org
TEST=manually run gclient_utils_test / gclient_smoketest / scm_unittest / gclient_scm_test

Review URL: https://chromiumcodereview.appspot.com/14134010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@196133 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org 71cbb503c8 Add placeholder git hooks.
This is a bit of future-proofing.  The git hooks in depot_tools/git-templates/hooks all try to forward to build/git-hooks.

Currently, the only actual hook we have is in src/build/git-hooks/pre-commit, which (usefully) makes sure no one inadvertently commits a submodule change.  If we want to add more git hooks, we can simply commit them to build/git-hooks, rather than asking everyone to modify .git/hooks in their checkout.

NOTRY=true

Review URL: https://chromiumcodereview.appspot.com/14230012

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@195336 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
mmoss@chromium.org 96833fa216 Support "--with_branch_heads" for unmanaged checkouts.
R=piman@chromium.org,maruel@chromium.org

Review URL: https://codereview.chromium.org/14178003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@194527 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
mmoss@chromium.org e409df67b0 Make sure branch-heads is configured whenever requested.
This allows the branch-heads to be pulled even if not configured on the
original clone.

Review URL: https://codereview.chromium.org/13951009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@194382 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 08b21bfe31 Unpoison gclient checkouts by setting recurseSubmodules=false
This was causing extremely slow gclient sync's, and was preventing gclient from
outputting anything if a slow submodule needed significant updating.

R=cmp@chromium.org
BUG=


Review URL: https://chromiumcodereview.appspot.com/13702002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@192475 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 6ede85ff7b Revert "Make gclient fetch git repos recursively. This is needed when adding a git repo through DEPS. If that repo has submodules, we need to fetch them or else the repo won't be complete."
This reverts commit 6a2e4710bf.

cmp says:
This CL causes NewGit and Git submodules workflows to comingle in ways that result in bad and unexpected failures for new and existing users.  One failure is for the new Blink developers who need to use git-svn with their WebKit third_party checkout.  Another failure is in the Windows NewGit workflow where gclient sync takes longer than necessary to complete.

The right approach at this point given the costs of this change is to revert it and rethink the best way to get projects the functionality they need while restoring the functionality existing projects have required for over a year now.

Please discuss the recursive/recurseSubmodules code face-to-face with cmp@google.com before attempting to make this live again.  Thanks.

R=cmp@chromium.org
BUG=224074


Review URL: https://chromiumcodereview.appspot.com/13470027

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@192236 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
mmoss@chromium.org 628522eb8d Don't replace default fetch config with branch-heads.
This causes the 'git config' to only add or update the branch-heads fetch
entry, and not replace any other existing entry (e.g. refs/heads/*).

Review URL: https://chromiumcodereview.appspot.com/12634013

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@189326 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
jam@chromium.org 6a2e4710bf Make gclient fetch git repos recursively. This is needed when adding a git repo through DEPS. If that repo has submodules, we need to fetch them or else the repo won't be complete.
Review URL: https://chromiumcodereview.appspot.com/12620024

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@189026 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
mmoss@chromium.org 059cc45058 Separate git 'clone' and 'config' commands.
Some versions of git don't support 'clone --config'.
Review URL: https://codereview.chromium.org/12688005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@187296 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
mmoss@chromium.org 468ed06910 Reapply r186598 with fix for 'gclient revert'.
Review URL: https://codereview.chromium.org/12553006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@186986 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
kjellander@chromium.org 9ffd050bd7 Revert 186598 ("Add option to automatically fetch git "branch-heads".")
Some SVN-only trybots get errors when running gclient revert with this
change. I assume it's because the flag is not present for the gclient
revert command, and that the code checking if options.with_branch_heads
is set is common to both revert and sync.

BUG=none
TEST=reverted locally and gclient revert worked again.

Review URL: https://chromiumcodereview.appspot.com/12616006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@186967 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
mmoss@chromium.org 4433ad0ef2 Add option to automatically fetch git "branch-heads".
The "branch-heads" are refspecs created from upstream svn branches. This flag
is mostly needed for official builders, and adds about 1/2GB of data to the
checkout, so not currently enabling by default.
Review URL: https://codereview.chromium.org/12546017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@186598 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 3830a67f5f Make safesync w/ git hash work when lkgr is ahead of clone.
R=maruel@chromium.org, szager@chromium.org
BUG=


Review URL: https://chromiumcodereview.appspot.com/12301002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@183275 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
bauerb@chromium.org 610060ef0e Reset to correct version when switching upstream repository for a git dependency.
This avoids build errors like at http://build.chromium.org/p/tryserver.chromium/builders/linux_clang/builds/64851/steps/update/logs/stdio (search for mtpd).

BUG=none


Review URL: https://chromiumcodereview.appspot.com/11417059

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@168521 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
davidjames@chromium.org 13349e2d41 Remove more unversioned directories.
Currently, if an unversioned directory is present where we would expect
a versioned repository to be, the following error is printed:

  Can't update/checkout %s if an unversioned directory is present.
  Delete the directory and try again.

If --reset and --delete_unversioned_trees are used, gclient should delete
the unversioned directory in this case.

This problem can be reproduced using the following recipe:
  $ rm -rf src/third_party/webrtc/.svn
  $ gclient sync -nRftD

BUG=none
TEST=Verify that above error is fixed. Run all smoke tests.


Review URL: https://chromiumcodereview.appspot.com/11366239

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@167942 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
szager@chromium.org c51def3ff4 Restore previous behavior of GetSha1ForSvnRev, so unit tests pass.
Review URL: https://chromiumcodereview.appspot.com/11148019

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@161909 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
szager@google.com 312a6a4e7a Fix safesync_url handling for git.
Takes into account the new submodule-enabled repository layout.
Review URL: https://codereview.chromium.org/11098064

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@161403 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
lliabraa@chromium.org ade83db154 Add 'git clean -f -d' to 'gclient revert' when in a git repo.
The try slaves run 'git revert' to clean up from the previous run. This only runs 'git reset --hard', which does not remove any untracked files, so if a CL adds a new file it will still be present after 'gclient revert'. Adding git clean -f -d removes untracked files (-f) and directories (-d).

Review URL: https://chromiumcodereview.appspot.com/10986032

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@159020 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
szager@chromium.org 987b06195e Set default for branch.autosetupmerge. This avoids problems with git-cl-upload
picking the wrong upstream branch.

Review URL: https://chromiumcodereview.appspot.com/10758011

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@145791 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org 9206738c68 Only call IsValidRevision() when it is a git hash.
Calling IsValidRevision('refs/head/master') will always return True.

TBR=bauerb@chromium.org
BUG=134858
TEST=Tested manually with 'managed': True


Review URL: https://chromiumcodereview.appspot.com/10694022

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@144786 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
bauerb@chromium.org cbd20a408f Skip updating remotes if we already have the upstream revision.
This should make a `gclient sync` faster, especially on Windows, where git hangs regularly.

BUG=none
TEST=gclient sync -v doesn't print "Fetching origin" all the time


Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=143898
Reverted: http://src.chromium.org/viewvc/chrome?view=rev&revision=143911

Review URL: https://chromiumcodereview.appspot.com/10668020

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@144451 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
bauerb@chromium.org 91514ab28c Revert 143898 - Skip updating remotes if we already have the upstream revision.
TBR=maruel@chromium.org

BUG=none
TEST=none


Review URL: https://chromiumcodereview.appspot.com/10663019

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@143911 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
bauerb@chromium.org f407f09f2f Skip updating remotes if we already have the upstream revision.
This should make a `gclient sync` faster, especially on Windows, where git hangs regularly.

BUG=none
TEST=gclient sync -v doesn't print "Fetching origin" all the time


Review URL: https://chromiumcodereview.appspot.com/10668020

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@143898 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
szager@chromium.org 78f5c16451 Set config option for diff.ignoreSubmodules to 'all'
Review URL: https://chromiumcodereview.appspot.com/10636015

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@143731 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
szager@chromium.org f5cc4279b0 Call UpdateSubmoduleConfig() in unmanaged mode, too.
Review URL: https://chromiumcodereview.appspot.com/10635010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@143474 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
szager@chromium.org 37e4f23403 Use default value of 'all' for submodule.*.ignore.
Review URL: https://chromiumcodereview.appspot.com/10630010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@143464 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
szager@chromium.org d4af662bd6 Automatically update submodule config entries on sync.
The effect of this is to preserve the behavior of `git status`,
i.e., only changes in the top-level repository will be reported.

Updated test expectations; I have no idea what I'm doing.

Review URL: https://chromiumcodereview.appspot.com/10454088

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@140396 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
haitao.feng@intel.com 306080c46d Make gclient pack work again by not prefixing "thread_id>"
into stdout and creating the GitDiffFilterer for git repository

BUG=125894
TEST=

Review URL: http://codereview.chromium.org/10317002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@135324 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
mukai@chromium.org 9e3e82c1b3 Check binary existence in gclient: 2nd try.
The first approach crrev.com/132446 was reverted due to
Windows build breaks. This approach is more robust because
it actually tests the binary by running the command actually.

BUG=114483
TEST=succeeded on Linux

Review URL: http://codereview.chromium.org/10103024

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@132783 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org 2a0108ebdb Revert r132446 "Check the existence and executability of scm commands"
This completely broke syncing on Windows.

TBR=mukai@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9956149

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@132451 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago