From ad627e1fd78525434f6afa011e62f5faf9c7c11f Mon Sep 17 00:00:00 2001 From: Isaac Muse Date: Mon, 5 Feb 2018 21:31:07 -0700 Subject: [PATCH] Generate files with unique names (#27) Ref #26 --- .dictionary | 1 + CHANGES.md | 6 ++++++ easy_diff_version_control.py | 34 +++++++++++++++++++++++----------- support.py | 2 +- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/.dictionary b/.dictionary index d5be02f..abcb221 100644 --- a/.dictionary +++ b/.dictionary @@ -4,6 +4,7 @@ Ctrl DeltaWalker EasyDiff EasyDiff's +Feb MERCHANTABILITY MkDocs NONINFRINGEMENT diff --git a/CHANGES.md b/CHANGES.md index ccc0484..87c1f51 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,9 @@ +# EasyDiff 2.0.3 + +> Released Feb 5, 2017 + +- **FIX**: More unique name for generated version control files #26. + # EasyDiff 2.0.2 > Released Nov 19, 2017 diff --git a/easy_diff_version_control.py b/easy_diff_version_control.py index a9a88cc..4f1fc70 100644 --- a/easy_diff_version_control.py +++ b/easy_diff_version_control.py @@ -6,6 +6,7 @@ """ import sublime import sublime_plugin +import os from os.path import basename, splitext, join, exists import EasyDiff.lib.svn as svn import EasyDiff.lib.git as git @@ -268,11 +269,15 @@ def get_files(self, name, **kwargs): rev = None if kwargs.get("last", False): rev = "PREV" - f1 = join(self.temp_folder, "%s-r%s-LEFT%s" % (root, rev, ext)) else: rev = "BASE" - f1 = join(self.temp_folder, "%s-r%s-LEFT%s" % (root, rev, ext)) - svn.export(f2, f1, rev=rev) + for x in range(1000): + file_path = join(self.temp_folder, "%s-r%s-LEFT-%03d%s" % (root, rev, x, ext)) + if not os.path.exists(file_path): + f1 = file_path + break + if f1 is not None: + svn.export(f2, f1, rev=rev) else: log("View not versioned under SVN!", status=True) return f1, f2 @@ -338,11 +343,14 @@ def get_files(self, name, **kwargs): revs = git.getrevision(f2, 2) if revs is not None and len(revs) == 2: rev = revs[1] - if rev is not None: - f1 = join(self.temp_folder, "%s-r%s-LEFT%s" % (root, rev, ext)) else: rev = "HEAD" - f1 = join(self.temp_folder, "%s-r%s-LEFT%s" % (root, rev, ext)) + if rev is not None: + for x in range(1000): + file_path = join(self.temp_folder, "%s-r%s-LEFT-%03d%s" % (root, rev, x, ext)) + if not os.path.exists(file_path): + f1 = file_path + break if f1 is not None: with open(f1, "wb") as f: bfr = git.show(f2, rev) @@ -420,11 +428,15 @@ def get_files(self, name, **kwargs): revs = hg.getrevision(f2, 2) if revs is not None and len(revs) == 2: rev = revs[1] - if rev is not None: - f1 = join(self.temp_folder, "%s-r%s-LEFT%s" % (root, rev, ext)) - else: - # Leave rev as None - f1 = join(self.temp_folder, "%s-r%s-LEFT%s" % (root, "BASE", ext)) + if not kwargs.get("last", False) or rev is not None: + for x in range(1000): + if rev is not None: + file_path = join(self.temp_folder, "%s-r%s-LEFT-%03d%s" % (root, rev, x, ext)) + else: + file_path = join(self.temp_folder, "%s-rBASE-LEFT-%03d%s" % (root, x, ext)) + if not os.path.exists(file_path): + f1 = file_path + break if f1 is not None: with open(f1, "wb") as f: bfr = hg.cat(f2, rev) diff --git a/support.py b/support.py index 7dd5a95..eedbeeb 100644 --- a/support.py +++ b/support.py @@ -5,7 +5,7 @@ import webbrowser import re -__version__ = "2.0.2" +__version__ = "2.0.3" __pc_name__ = 'EasyDiff' CSS = '''