src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py

branch
eric7
changeset 11013
ad483a12058c
parent 11006
a671918232f3
child 11067
67b92e2cb719
diff -r 8685d10eca0f -r ad483a12058c src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py
--- a/src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Tue Oct 29 14:21:15 2024 +0100
+++ b/src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Tue Oct 29 19:48:56 2024 +0100
@@ -150,6 +150,7 @@
         self.__repoIniFile = ""
         self.__defaultConfigured = False
         self.__defaultPushConfigured = False
+        self.__ignoreFile = ""
 
         # instantiate the extensions
         self.__extensions = {
@@ -235,6 +236,8 @@
         watcher.removePath(self.__cfgFile)
         if self.__repoIniFile:
             watcher.removePath(self.__repoIniFile)
+        if self.__ignoreFile:
+            watcher.removePath(self.__ignoreFile)
 
     def initCommand(self, command):
         """
@@ -2166,7 +2169,7 @@
                             if lfPattern is not None:
                                 cfg.write("patterns =\n")
                                 cfg.write("  {0}\n".format("\n  ".join(lfPattern)))
-                self.__monitorRepoIniFile(repoName)
+                self.__monitorRepoConfigFiles(repoName)
                 self.__iniFileChanged(cfgFile)
         self.repoEditor = MiniEditor(cfgFile, "Properties")
         self.repoEditor.show()
@@ -2301,6 +2304,7 @@
                 with open(ignoreName, "w") as ignore:
                     ignore.write("\n".join(ignorePatterns))
                     ignore.write("\n")
+                self.__monitorRepoConfigFiles(name)
                 status = True
             except OSError:
                 status = False
@@ -3122,7 +3126,7 @@
         @type str
         """
         if (
-            path in (self.__cfgFile, self.__repoIniFile)
+            path in (self.__cfgFile, self.__repoIniFile, self.__ignoreFile)
             and not self.__iniFileChangedFlag
         ):
             self.__iniFileChangedFlag = True
@@ -3138,6 +3142,8 @@
                         ).format(err),
                     )
 
+            self.restartStatusMonitor(self.__projectHelper.getProject())
+
             self.__getExtensionsInfo()
 
             if self.__repoIniFile and path == self.__repoIniFile:
@@ -3147,21 +3153,27 @@
 
             self.__iniFileChangedFlag = False
 
-    def __monitorRepoIniFile(self, repodir):
+    def __monitorRepoConfigFiles(self, repodir):
         """
-        Private slot to add a repository configuration file to the list of
+        Private slot to add some repository configuration files to the list of
         monitored files.
 
         @param repodir directory name of the repository
         @type str
         """
+        watcher = EricFileSystemWatcher.instance()
+
         cfgFile = os.path.join(repodir, self.adminDir, "hgrc")
         if os.path.exists(cfgFile):
-            watcher = EricFileSystemWatcher.instance()
             watcher.addPath(cfgFile)
             self.__repoIniFile = cfgFile
             self.__checkDefaults()
 
+        ignoreFile = os.path.join(repodir, Hg.IgnoreFileName)
+        if os.path.exists(ignoreFile):
+            watcher.addPath(ignoreFile)
+            self.__ignoreFile = ignoreFile
+
     ###########################################################################
     ## Methods to handle extensions are below.
     ###########################################################################
@@ -3259,7 +3271,7 @@
         if repodir:
             self.__repoDir = repodir
             self.__createClient(repodir)
-            self.__monitorRepoIniFile(repodir)
+            self.__monitorRepoConfigFiles(repodir)
 
         return self.__projectHelper
 

eric ide

mercurial