From 402a6c2808db4333217aa300d0312836fd7923bd Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 24 Jun 2010 21:19:07 +0200 Subject: 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 --- lib/git/index/base.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'lib/git/index/base.py') 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 -- cgit v1.2.1