summaryrefslogtreecommitdiff
path: root/git/objects/submodule/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/objects/submodule/base.py')
-rw-r--r--git/objects/submodule/base.py84
1 files changed, 42 insertions, 42 deletions
diff --git a/git/objects/submodule/base.py b/git/objects/submodule/base.py
index 770dcffd..f26cac91 100644
--- a/git/objects/submodule/base.py
+++ b/git/objects/submodule/base.py
@@ -1,17 +1,17 @@
import util
from util import (
mkhead,
- sm_name,
- sm_section,
- unbare_repo,
+ sm_name,
+ sm_section,
+ unbare_repo,
SubmoduleConfigParser,
find_first_remote_branch
)
from git.objects.util import Traversable
from StringIO import StringIO # need a dict to set bloody .name field
from git.util import (
- Iterable,
- join_path_native,
+ Iterable,
+ join_path_native,
to_native_path_linux,
RemoteProgress,
rmtree
@@ -19,7 +19,7 @@ from git.util import (
from git.config import SectionConstraint
from git.exc import (
- InvalidGitRepositoryError,
+ InvalidGitRepositoryError,
NoSuchPathError
)
@@ -35,7 +35,7 @@ __all__ = ["Submodule", "UpdateProgress"]
class UpdateProgress(RemoteProgress):
- """Class providing detailed progress information to the caller who should
+ """Class providing detailed progress information to the caller who should
derive from it and implement the ``update(...)`` message"""
CLONE, FETCH, UPDWKTREE = [1 << x for x in range(RemoteProgress._num_op_codes, RemoteProgress._num_op_codes + 3)]
_num_op_codes = RemoteProgress._num_op_codes + 3
@@ -50,14 +50,14 @@ FETCH = UpdateProgress.FETCH
UPDWKTREE = UpdateProgress.UPDWKTREE
-# IndexObject comes via util module, its a 'hacky' fix thanks to pythons import
+# IndexObject comes via util module, its a 'hacky' fix thanks to pythons import
# mechanism which cause plenty of trouble of the only reason for packages and
# modules is refactoring - subpackages shoudn't depend on parent packages
class Submodule(util.IndexObject, Iterable, Traversable):
"""Implements access to a git submodule. They are special in that their sha
represents a commit in the submodule's repository which is to be checked out
- at the path of this instance.
+ at the path of this instance.
The submodule type does not have a string type associated with it, as it exists
solely as a marker in the tree and index.
@@ -76,7 +76,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
_cache_attrs = ('path', '_url', '_branch_path')
def __init__(self, repo, binsha, mode=None, path=None, name=None, parent_commit=None, url=None, branch_path=None):
- """Initialize this instance with its attributes. We only document the ones
+ """Initialize this instance with its attributes. We only document the ones
that differ from ``IndexObject``
:param repo: Our parent repository
@@ -140,13 +140,13 @@ class Submodule(util.IndexObject, Iterable, Traversable):
return self._name
def __repr__(self):
- return "git.%s(name=%s, path=%s, url=%s, branch_path=%s)" % (type(self).__name__, self._name, self.path, self.url, self.branch_path)
+ return "git.%s(name=%s, path=%s, url=%s, branch_path=%s)" % (type(self).__name__, self._name, self.path, self.url, self.branch_path)
@classmethod
def _config_parser(cls, repo, parent_commit, read_only):
""":return: Config Parser constrained to our submodule in read or write mode
:raise IOError: If the .gitmodules file cannot be found, either locally or in the repository
- at the given parent commit. Otherwise the exception would be delayed until the first
+ at the given parent commit. Otherwise the exception would be delayed until the first
access of the config parser"""
parent_matches_head = repo.head.commit == parent_commit
if not repo.bare and parent_matches_head:
@@ -204,7 +204,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
:param repo: Repository instance which should receive the submodule
:param name: The name/identifier for the submodule
- :param path: repository-relative or absolute path at which the submodule
+ :param path: repository-relative or absolute path at which the submodule
should be located
It will be created as required during the repository initialization.
:param url: git-clone compatible URL, see git-clone reference for more information
@@ -219,7 +219,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
The result you get in these situation is somewhat fuzzy, and it is recommended
to specify at least 'master' here.
Examples are 'master' or 'feature/new'
- :param no_checkout: if True, and if the repository has to be cloned manually,
+ :param no_checkout: if True, and if the repository has to be cloned manually,
no checkout will be performed
:return: The newly created submodule instance
:note: works atomically, such that no change will be done if the repository
@@ -233,8 +233,8 @@ class Submodule(util.IndexObject, Iterable, Traversable):
path = path[:-1]
# END handle trailing slash
- # assure we never put backslashes into the url, as some operating systems
- # like it ...
+ # assure we never put backslashes into the url, as some operating systems
+ # like it ...
if url != None:
url = to_native_path_linux(url)
#END assure url correctness
@@ -306,7 +306,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
return sm
- def update(self, recursive=False, init=True, to_latest_revision=False, progress=None,
+ def update(self, recursive=False, init=True, to_latest_revision=False, progress=None,
dry_run=False):
"""Update the repository of this submodule to point to the checkout
we point at with the binsha of this instance.
@@ -317,7 +317,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
:param to_latest_revision: if True, the submodule's sha will be ignored during checkout.
Instead, the remote will be fetched, and the local tracking branch updated.
This only works if we have a local tracking branch, which is the case
- if the remote repository had a master branch, or of the 'branch' option
+ if the remote repository had a master branch, or of the 'branch' option
was specified for this submodule and the branch existed remotely
:param progress: UpdateProgress instance or None of no progress should be shown
:param dry_run: if True, the operation will only be simulated, but not performed.
@@ -405,12 +405,12 @@ class Submodule(util.IndexObject, Iterable, Traversable):
mrepo.head.set_reference(local_branch, logmsg="submodule: attaching head to %s" % local_branch)
mrepo.head.ref.set_tracking_branch(remote_branch)
except IndexError:
- print >> sys.stderr, "Warning: Failed to checkout tracking branch %s" % self.branch_path
+ print >> sys.stderr, "Warning: Failed to checkout tracking branch %s" % self.branch_path
#END handle tracking branch
# NOTE: Have to write the repo config file as well, otherwise
# the default implementation will be offended and not update the repository
- # Maybe this is a good way to assure it doesn't get into our way, but
+ # Maybe this is a good way to assure it doesn't get into our way, but
# we want to stay backwards compatible too ... . Its so redundant !
self.repo.config_writer().set_value(sm_section(self.name), 'url', self.url)
#END handle dry_run
@@ -434,7 +434,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
binsha = rcommit.binsha
hexsha = rcommit.hexsha
else:
- print >> sys.stderr, "%s a tracking branch was not set for local branch '%s'" % (msg_base, mrepo.head.ref)
+ print >> sys.stderr, "%s a tracking branch was not set for local branch '%s'" % (msg_base, mrepo.head.ref)
# END handle remote ref
else:
print >> sys.stderr, "%s there was no local tracking branch" % msg_base
@@ -448,7 +448,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
if not dry_run:
if is_detached:
# NOTE: for now we force, the user is no supposed to change detached
- # submodules anyway. Maybe at some point this becomes an option, to
+ # submodules anyway. Maybe at some point this becomes an option, to
# properly handle user modifications - see below for future options
# regarding rebase and merge.
mrepo.git.checkout(hexsha, force=True)
@@ -485,10 +485,10 @@ class Submodule(util.IndexObject, Iterable, Traversable):
repository-relative path. Intermediate directories will be created
accordingly. If the path already exists, it must be empty.
Trailling (back)slashes are removed automatically
- :param configuration: if True, the configuration will be adjusted to let
+ :param configuration: if True, the configuration will be adjusted to let
the submodule point to the given path.
:param module: if True, the repository managed by this submodule
- will be moved, not the configuration. This will effectively
+ will be moved, not the configuration. This will effectively
leave your repository in an inconsistent state unless the configuration
and index already point to the target location.
:return: self
@@ -549,7 +549,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
renamed_module = True
#END move physical module
- # rename the index entry - have to manipulate the index directly as
+ # rename the index entry - have to manipulate the index directly as
# git-mv cannot be used on submodules ... yeah
try:
if configuration:
@@ -583,20 +583,20 @@ class Submodule(util.IndexObject, Iterable, Traversable):
"""Remove this submodule from the repository. This will remove our entry
from the .gitmodules file and the entry in the .git/config file.
- :param module: If True, the module we point to will be deleted
- as well. If the module is currently on a commit which is not part
- of any branch in the remote, if the currently checked out branch
+ :param module: If True, the module we point to will be deleted
+ as well. If the module is currently on a commit which is not part
+ of any branch in the remote, if the currently checked out branch
working tree, or untracked files,
is ahead of its tracking branch, if you have modifications in the
- In case the removal of the repository fails for these reasons, the
+ In case the removal of the repository fails for these reasons, the
submodule status will not have been altered.
If this submodule has child-modules on its own, these will be deleted
prior to touching the own module.
- :param force: Enforces the deletion of the module even though it contains
+ :param force: Enforces the deletion of the module even though it contains
modifications. This basically enforces a brute-force file system based
deletion.
- :param configuration: if True, the submodule is deleted from the configuration,
- otherwise it isn't. Although this should be enabled most of the times,
+ :param configuration: if True, the submodule is deleted from the configuration,
+ otherwise it isn't. Although this should be enabled most of the times,
this flag enables you to safely delete the repository of your submodule.
:param dry_run: if True, we will not actually do anything, but throw the errors
we would usually throw
@@ -636,7 +636,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
# END check for dirt
# figure out whether we have new commits compared to the remotes
- # NOTE: If the user pulled all the time, the remote heads might
+ # NOTE: If the user pulled all the time, the remote heads might
# not have been updated, so commits coming from the remote look
# as if they come from us. But we stay strictly read-only and
# don't fetch beforhand.
@@ -650,7 +650,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
if num_branches_with_new_commits == len(rrefs):
raise InvalidGitRepositoryError("Cannot delete module at %s as there are new commits" % mod.working_tree_dir)
# END handle new commits
- # have to manually delete references as python's scoping is
+ # have to manually delete references as python's scoping is
# not existing, they could keep handles open ( on windows this is a problem )
if len(rrefs):
del(rref)
@@ -686,7 +686,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
#END delete entry
index.write()
- # now git config - need the config intact, otherwise we can't query
+ # now git config - need the config intact, otherwise we can't query
# inforamtion anymore
self.repo.config_writer().remove_section(sm_section(self.name))
self.config_writer().remove_section()
@@ -698,7 +698,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
return self
def set_parent_commit(self, commit, check=True):
- """Set this instance to use the given commit whose tree is supposed to
+ """Set this instance to use the given commit whose tree is supposed to
contain the .gitmodules blob.
:param commit: Commit'ish reference pointing at the root_tree
@@ -721,7 +721,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
parser = self._config_parser(self.repo, self._parent_commit, read_only=True)
if not parser.has_section(sm_section(self.name)):
self._parent_commit = prev_pc
- raise ValueError("Submodule at path %r did not exist in parent commit %s" % (self.path, commit))
+ raise ValueError("Submodule at path %r did not exist in parent commit %s" % (self.path, commit))
# END handle submodule did not exist
# END handle checking mode
@@ -741,8 +741,8 @@ class Submodule(util.IndexObject, Iterable, Traversable):
defaults to the index of the Submodule's parent repository.
:param write: if True, the index will be written each time a configuration
value changes.
- :note: the parameters allow for a more efficient writing of the index,
- as you can pass in a modified index on your own, prevent automatic writing,
+ :note: the parameters allow for a more efficient writing of the index,
+ as you can pass in a modified index on your own, prevent automatic writing,
and write yourself once the whole operation is complete
:raise ValueError: if trying to get a writer on a parent_commit which does not
match the current head commit
@@ -760,10 +760,10 @@ class Submodule(util.IndexObject, Iterable, Traversable):
@unbare_repo
def module(self):
""":return: Repo instance initialized from the repository at our submodule path
- :raise InvalidGitRepositoryError: if a repository was not available. This could
+ :raise InvalidGitRepositoryError: if a repository was not available. This could
also mean that it was not yet initialized"""
# late import to workaround circular dependencies
- module_path = self.abspath
+ module_path = self.abspath
try:
repo = git.Repo(module_path)
if repo != self.repo:
@@ -847,7 +847,7 @@ class Submodule(util.IndexObject, Iterable, Traversable):
@property
def name(self):
- """:return: The name of this submodule. It is used to identify it within the
+ """:return: The name of this submodule. It is used to identify it within the
.gitmodules file.
:note: by default, the name is the path at which to find the submodule, but
in git-python it should be a unique identifier similar to the identifiers