From 8a5e08e56846e5b0d4980a2a6c655f2252d5535b Mon Sep 17 00:00:00 2001 From: AxelCarayon <axel.carayon@gmail.com> Date: Wed, 19 Jan 2022 14:55:43 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20v=C3=A9rif=20si=20changements=20=C3=A0?= =?UTF-8?q?=20l'initialisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- registerExperiment.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/registerExperiment.py b/registerExperiment.py index 9b6cf87..ab38a0d 100644 --- a/registerExperiment.py +++ b/registerExperiment.py @@ -33,6 +33,14 @@ def isGitRepo(path) -> bool: except git.exc.InvalidGitRepositoryError: return False +def checkForChanges() -> None: + changesNotAdded = [ item.a_path for item in repository.index.diff(None) ] + changesAdded = [ item.a_path for item in repository.index.diff(repository.head.name) ] + untrackedFiles = repository.untracked_files + + if ((len(changesNotAdded) + len(changesAdded) + len(untrackedFiles)) > 0): + raise Exception("There are changes in the repository since the last commit, you can only register an experiment from a clean repository.") + def init(pathInput) -> None : global repository,path,experimentName,tags, currentTag if isGitRepo(pathInput): @@ -44,6 +52,7 @@ def init(pathInput) -> None : os.chdir(path) else : raise Exception(f"{pathInput} is not a git repository") + checkForChanges() tags = repository.tags currentTag = repository.git.describe('--tags') if not(currentVersionIsTagged()): @@ -174,6 +183,8 @@ def genChecksums() -> list[dict]: checksums.append({file : genChecksum(outputFolder+file)}) return checksums + + def run(folder) -> None : init(folder) repository.active_branch.checkout() -- GitLab