mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
c9ef744c7b
This hook is evaluated by `git gc --auto` to determine if it is a good idea to execute a GC at this time, or defer it to some later date. When working on a laptop its a good idea to avoid GC if you are on battery power as the extra CPU and disk IO would consume a decent amount of the charge. The hook is the standard sample hook from git.git contrib/hooks, last modified in git.git by 84ed4c5d117d72f02cc918e413b9861a9d2846d7. I added the GPLv2 header to the script to ensure the license notice is clear, as it does not match repo's own APLv2 license. We only update hooks during initial repository creation or on a repo sync. This way we don't incur huge overheads from the hook stat operations during "repo status" or even the normal "repo sync" cases. Signed-off-by: Shawn O. Pearce <sop@google.com>
69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
#
|
|
# Copyright (C) 2008 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
class ManifestParseError(Exception):
|
|
"""Failed to parse the manifest file.
|
|
"""
|
|
|
|
class EditorError(Exception):
|
|
"""Unspecified error from the user's text editor.
|
|
"""
|
|
|
|
class GitError(Exception):
|
|
"""Unspecified internal error from git.
|
|
"""
|
|
def __init__(self, command):
|
|
self.command = command
|
|
|
|
def __str__(self):
|
|
return self.command
|
|
|
|
class ImportError(Exception):
|
|
"""An import from a non-Git format cannot be performed.
|
|
"""
|
|
def __init__(self, reason):
|
|
self.reason = reason
|
|
|
|
def __str__(self):
|
|
return self.reason
|
|
|
|
class UploadError(Exception):
|
|
"""A bundle upload to Gerrit did not succeed.
|
|
"""
|
|
def __init__(self, reason):
|
|
self.reason = reason
|
|
|
|
def __str__(self):
|
|
return self.reason
|
|
|
|
class NoSuchProjectError(Exception):
|
|
"""A specified project does not exist in the work tree.
|
|
"""
|
|
def __init__(self, name=None):
|
|
self.name = name
|
|
|
|
def __str__(self):
|
|
if self.Name is None:
|
|
return 'in current directory'
|
|
return self.name
|
|
|
|
class RepoChangedException(Exception):
|
|
"""Thrown if 'repo sync' results in repo updating its internal
|
|
repo or manifest repositories. In this special case we must
|
|
use exec to re-execute repo with the new code and manifest.
|
|
"""
|
|
def __init__(self, extra_args=[]):
|
|
self.extra_args = extra_args
|