+ def get_file_set(rev):
+ return set(shell.eval("git", "ls-tree", "-r", "--name-only", rev).split("\n"))
+ # add all files that are unversioned but would be replaced by the pull,
+ # and generate a new commit
+ old_files = get_file_set("HEAD")
+ new_files = get_file_set(self.version)
+ added_files = new_files - old_files
+ for f in added_files:
+ if os.path.exists(f):
+ shell.call("git", "add", f)