summaryrefslogtreecommitdiff
path: root/lib/git/index/base.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2010-06-24 21:19:07 +0200
committerSebastian Thiel <byronimo@gmail.com>2010-06-24 21:19:07 +0200
commit402a6c2808db4333217aa300d0312836fd7923bd (patch)
tree75936cb1c63dd34f7866c467ecd2ddb801425213 /lib/git/index/base.py
parentfeb1ea0f4aacb9ea6dc4133900e65bf34c0ee02d (diff)
downloadgitpython-402a6c2808db4333217aa300d0312836fd7923bd.tar.gz
IndexFile.add: writing of the index file can now optionally be turned off. The default is to write the physical index, which is the behaviour you would expect
Diffstat (limited to 'lib/git/index/base.py')
-rw-r--r--lib/git/index/base.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/git/index/base.py b/lib/git/index/base.py
index 7568b476..96cd6e40 100644
--- a/lib/git/index/base.py
+++ b/lib/git/index/base.py
@@ -581,10 +581,10 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
return (paths, entries)
@git_working_dir
- def add(self, items, force=True, fprogress=lambda *args: None, path_rewriter=None):
+ def add(self, items, force=True, fprogress=lambda *args: None, path_rewriter=None,
+ write=True):
"""Add files from the working tree, specific blobs or BaseIndexEntries
- to the index. The underlying index file will be written immediately, hence
- you should provide as many items as possible to minimize the amounts of writes
+ to the index.
:param items:
Multiple types of items are supported, types can be mixed within one call.
@@ -653,6 +653,10 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
converted to Entries beforehand and passed to the path_rewriter.
Please note that entry.path is relative to the git repository.
+ :param write:
+ If True, the index will be written once it was altered. Otherwise
+ the changes only exist in memory and are not available to git commands.
+
:return:
List(BaseIndexEntries) representing the entries just actually added.
@@ -748,11 +752,13 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
# END if there are base entries
# FINALIZE
- # add the new entries to this instance, and write it
+ # add the new entries to this instance
for entry in entries_added:
self.entries[(entry.path, 0)] = IndexEntry.from_base(entry)
-
- self.write()
+
+ if write:
+ self.write()
+ # END handle write
return entries_added