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