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

branch
eric7
changeset 11013
ad483a12058c
parent 11006
a671918232f3
child 11067
67b92e2cb719
equal deleted inserted replaced
11012:8685d10eca0f 11013:ad483a12058c
148 148
149 self.__repoDir = "" 149 self.__repoDir = ""
150 self.__repoIniFile = "" 150 self.__repoIniFile = ""
151 self.__defaultConfigured = False 151 self.__defaultConfigured = False
152 self.__defaultPushConfigured = False 152 self.__defaultPushConfigured = False
153 self.__ignoreFile = ""
153 154
154 # instantiate the extensions 155 # instantiate the extensions
155 self.__extensions = { 156 self.__extensions = {
156 "mq": Queues(self, ui=self.__ui), 157 "mq": Queues(self, ui=self.__ui),
157 "purge": Purge(self, ui=self.__ui), 158 "purge": Purge(self, ui=self.__ui),
233 watcher.fileDeleted.disconnect(self.__iniFileChanged) 234 watcher.fileDeleted.disconnect(self.__iniFileChanged)
234 watcher.fileModified.disconnect(self.__iniFileChanged) 235 watcher.fileModified.disconnect(self.__iniFileChanged)
235 watcher.removePath(self.__cfgFile) 236 watcher.removePath(self.__cfgFile)
236 if self.__repoIniFile: 237 if self.__repoIniFile:
237 watcher.removePath(self.__repoIniFile) 238 watcher.removePath(self.__repoIniFile)
239 if self.__ignoreFile:
240 watcher.removePath(self.__ignoreFile)
238 241
239 def initCommand(self, command): 242 def initCommand(self, command):
240 """ 243 """
241 Public method to initialize a command arguments list. 244 Public method to initialize a command arguments list.
242 245
2164 if lfMinSize is not None: 2167 if lfMinSize is not None:
2165 cfg.write("minsize = {0}\n".format(lfMinSize)) 2168 cfg.write("minsize = {0}\n".format(lfMinSize))
2166 if lfPattern is not None: 2169 if lfPattern is not None:
2167 cfg.write("patterns =\n") 2170 cfg.write("patterns =\n")
2168 cfg.write(" {0}\n".format("\n ".join(lfPattern))) 2171 cfg.write(" {0}\n".format("\n ".join(lfPattern)))
2169 self.__monitorRepoIniFile(repoName) 2172 self.__monitorRepoConfigFiles(repoName)
2170 self.__iniFileChanged(cfgFile) 2173 self.__iniFileChanged(cfgFile)
2171 self.repoEditor = MiniEditor(cfgFile, "Properties") 2174 self.repoEditor = MiniEditor(cfgFile, "Properties")
2172 self.repoEditor.show() 2175 self.repoEditor.show()
2173 2176
2174 def hgVerify(self): 2177 def hgVerify(self):
2299 try: 2302 try:
2300 # create a .hgignore file 2303 # create a .hgignore file
2301 with open(ignoreName, "w") as ignore: 2304 with open(ignoreName, "w") as ignore:
2302 ignore.write("\n".join(ignorePatterns)) 2305 ignore.write("\n".join(ignorePatterns))
2303 ignore.write("\n") 2306 ignore.write("\n")
2307 self.__monitorRepoConfigFiles(name)
2304 status = True 2308 status = True
2305 except OSError: 2309 except OSError:
2306 status = False 2310 status = False
2307 2311
2308 if status and autoAdd: 2312 if status and autoAdd:
3120 3124
3121 @param path name of the changed file 3125 @param path name of the changed file
3122 @type str 3126 @type str
3123 """ 3127 """
3124 if ( 3128 if (
3125 path in (self.__cfgFile, self.__repoIniFile) 3129 path in (self.__cfgFile, self.__repoIniFile, self.__ignoreFile)
3126 and not self.__iniFileChangedFlag 3130 and not self.__iniFileChangedFlag
3127 ): 3131 ):
3128 self.__iniFileChangedFlag = True 3132 self.__iniFileChangedFlag = True
3129 if self.__client: 3133 if self.__client:
3130 ok, err = self.__client.restartServer() 3134 ok, err = self.__client.restartServer()
3136 """<p>The Mercurial Command Server could not be""" 3140 """<p>The Mercurial Command Server could not be"""
3137 """ restarted.</p><p>Reason: {0}</p>""" 3141 """ restarted.</p><p>Reason: {0}</p>"""
3138 ).format(err), 3142 ).format(err),
3139 ) 3143 )
3140 3144
3145 self.restartStatusMonitor(self.__projectHelper.getProject())
3146
3141 self.__getExtensionsInfo() 3147 self.__getExtensionsInfo()
3142 3148
3143 if self.__repoIniFile and path == self.__repoIniFile: 3149 if self.__repoIniFile and path == self.__repoIniFile:
3144 self.__checkDefaults() 3150 self.__checkDefaults()
3145 3151
3146 self.iniFileChanged.emit() 3152 self.iniFileChanged.emit()
3147 3153
3148 self.__iniFileChangedFlag = False 3154 self.__iniFileChangedFlag = False
3149 3155
3150 def __monitorRepoIniFile(self, repodir): 3156 def __monitorRepoConfigFiles(self, repodir):
3151 """ 3157 """
3152 Private slot to add a repository configuration file to the list of 3158 Private slot to add some repository configuration files to the list of
3153 monitored files. 3159 monitored files.
3154 3160
3155 @param repodir directory name of the repository 3161 @param repodir directory name of the repository
3156 @type str 3162 @type str
3157 """ 3163 """
3164 watcher = EricFileSystemWatcher.instance()
3165
3158 cfgFile = os.path.join(repodir, self.adminDir, "hgrc") 3166 cfgFile = os.path.join(repodir, self.adminDir, "hgrc")
3159 if os.path.exists(cfgFile): 3167 if os.path.exists(cfgFile):
3160 watcher = EricFileSystemWatcher.instance()
3161 watcher.addPath(cfgFile) 3168 watcher.addPath(cfgFile)
3162 self.__repoIniFile = cfgFile 3169 self.__repoIniFile = cfgFile
3163 self.__checkDefaults() 3170 self.__checkDefaults()
3171
3172 ignoreFile = os.path.join(repodir, Hg.IgnoreFileName)
3173 if os.path.exists(ignoreFile):
3174 watcher.addPath(ignoreFile)
3175 self.__ignoreFile = ignoreFile
3164 3176
3165 ########################################################################### 3177 ###########################################################################
3166 ## Methods to handle extensions are below. 3178 ## Methods to handle extensions are below.
3167 ########################################################################### 3179 ###########################################################################
3168 3180
3257 self.__projectHelper.setObjects(self, project) 3269 self.__projectHelper.setObjects(self, project)
3258 3270
3259 if repodir: 3271 if repodir:
3260 self.__repoDir = repodir 3272 self.__repoDir = repodir
3261 self.__createClient(repodir) 3273 self.__createClient(repodir)
3262 self.__monitorRepoIniFile(repodir) 3274 self.__monitorRepoConfigFiles(repodir)
3263 3275
3264 return self.__projectHelper 3276 return self.__projectHelper
3265 3277
3266 ########################################################################### 3278 ###########################################################################
3267 ## Methods to handle the Mercurial command server are below. 3279 ## Methods to handle the Mercurial command server are below.

eric ide

mercurial