SVN: Checkout, Multi-Repo, Optimizations & Clean-up #104
@ -42,13 +42,12 @@ class SVN_scene_properties(PropertyGroup):
|
||||
return prefs.active_repo
|
||||
|
||||
def get_scene_repo(self, context) -> Optional['SVN_repository']:
|
||||
scene_svn = context.scene.svn
|
||||
if not scene_svn.svn_url or not scene_svn.svn_directory:
|
||||
if not self.svn_url or not self.svn_directory:
|
||||
return
|
||||
|
||||
prefs = get_addon_prefs(context)
|
||||
for repo in prefs.repositories:
|
||||
if (repo.url == scene_svn.svn_url) and (Path(repo.directory) == Path(scene_svn.svn_directory)):
|
||||
if (repo.url == self.svn_url) and (Path(repo.directory) == Path(self.svn_directory)):
|
||||
return repo
|
||||
|
||||
|
||||
|
@ -12,7 +12,7 @@ def get_svn_info(path: Path or str) -> Tuple[str, str]:
|
||||
except subprocess.CalledProcessError as e:
|
||||
error_msg = e.stderr.decode()
|
||||
if "is not a working copy" in error_msg:
|
||||
return None, None, None
|
||||
return None, None
|
||||
elif "E200009" in error_msg:
|
||||
# If we're in a folder that wasn't yet added to the repo,
|
||||
# try again one folder higher.
|
||||
|
@ -89,6 +89,10 @@ def init_svn_of_current_file(_scene=None):
|
||||
repo = scene_svn.get_scene_repo(context)
|
||||
if not repo:
|
||||
repo = prefs.init_repo(context, scene_svn.svn_directory)
|
||||
|
||||
for i, other_repo in enumerate(prefs.repositories):
|
||||
if other_repo == repo:
|
||||
prefs.active_repo_idx = i
|
||||
|
||||
else:
|
||||
repo = prefs.active_repo
|
||||
|
@ -28,7 +28,6 @@ class SVN_UL_file_list(UIList):
|
||||
if self.layout_type != 'DEFAULT':
|
||||
raise NotImplemented
|
||||
|
||||
repo = data
|
||||
file_entry = item
|
||||
prefs = get_addon_prefs(context)
|
||||
|
||||
|
@ -15,6 +15,10 @@ class SVN_UL_repositories(UIList):
|
||||
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
|
||||
repo = item
|
||||
row = layout.row()
|
||||
|
||||
prefs = get_addon_prefs(context)
|
||||
if prefs.ui_mode == 'CURRENT_BLEND' and repo != context.scene.svn.get_repo(context):
|
||||
row.enabled = False
|
||||
row.label(text=repo.display_name)
|
||||
|
||||
if not repo.is_valid:
|
||||
@ -107,8 +111,6 @@ def draw_prefs(self, context) -> None:
|
||||
repo_col.enabled = not auth_in_progress
|
||||
|
||||
list_row = repo_col.row()
|
||||
if self.ui_mode == 'CURRENT_BLEND':
|
||||
list_row.enabled = False
|
||||
col = list_row.column()
|
||||
col.template_list(
|
||||
"SVN_UL_repositories",
|
||||
|
Loading…
Reference in New Issue
Block a user