Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 5501
59ed7b2dd952
parent 5496
d157a2319073
child 5503
20dd5c1e43ec
equal deleted inserted replaced
5500:5e723c249586 5501:59ed7b2dd952
2516 project = e5App().getObject("Project") 2516 project = e5App().getObject("Project")
2517 project.appendFile(ignoreName) 2517 project.appendFile(ignoreName)
2518 2518
2519 return status 2519 return status
2520 2520
2521 def hgBundle(self, name): 2521 def hgBundle(self, name, bundleData=None):
2522 """ 2522 """
2523 Public method to create a changegroup file. 2523 Public method to create a changegroup file.
2524 2524
2525 @param name file/directory name (string) 2525 @param name file/directory name
2526 @type str
2527 @param bundleData dictionary containing the bundle creation information
2528 @type dict
2526 """ 2529 """
2527 dname, fname = self.splitPath(name) 2530 dname, fname = self.splitPath(name)
2528 2531
2529 # find the root of the repo 2532 # find the root of the repo
2530 repodir = dname 2533 repodir = dname
2531 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 2534 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
2532 repodir = os.path.dirname(repodir) 2535 repodir = os.path.dirname(repodir)
2533 if os.path.splitdrive(repodir)[1] == os.sep: 2536 if os.path.splitdrive(repodir)[1] == os.sep:
2534 return 2537 return
2535 2538
2536 from .HgBundleDialog import HgBundleDialog 2539 if bundleData is None:
2537 dlg = HgBundleDialog(self.hgGetTagsList(repodir), 2540 from .HgBundleDialog import HgBundleDialog
2538 self.hgGetBranchesList(repodir), 2541 dlg = HgBundleDialog(self.hgGetTagsList(repodir),
2539 self.hgGetBookmarksList(repodir)) 2542 self.hgGetBranchesList(repodir),
2540 if dlg.exec_() == QDialog.Accepted: 2543 self.hgGetBookmarksList(repodir))
2544 if dlg.exec_() != QDialog.Accepted:
2545 return
2546
2541 revs, baseRevs, compression, all = dlg.getParameters() 2547 revs, baseRevs, compression, all = dlg.getParameters()
2542 2548 else:
2543 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 2549 revs = bundleData["revs"]
2544 None, 2550 baseRevs = [bundleData["base"]]
2551 compression = ""
2552 all = bundleData["all"]
2553
2554 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
2555 None,
2556 self.tr("Create changegroup"),
2557 self.__lastChangeGroupPath or repodir,
2558 self.tr("Mercurial Changegroup Files (*.hg)"),
2559 None,
2560 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
2561
2562 if not fname:
2563 return # user aborted
2564
2565 ext = QFileInfo(fname).suffix()
2566 if not ext:
2567 ex = selectedFilter.split("(*")[1].split(")")[0]
2568 if ex:
2569 fname += ex
2570 if QFileInfo(fname).exists():
2571 res = E5MessageBox.yesNo(
2572 self.__ui,
2545 self.tr("Create changegroup"), 2573 self.tr("Create changegroup"),
2546 self.__lastChangeGroupPath or repodir, 2574 self.tr("<p>The Mercurial changegroup file <b>{0}</b> "
2547 self.tr("Mercurial Changegroup Files (*.hg)"), 2575 "already exists. Overwrite it?</p>")
2548 None, 2576 .format(fname),
2549 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) 2577 icon=E5MessageBox.Warning)
2550 2578 if not res:
2551 if not fname: 2579 return
2552 return # user aborted 2580 fname = Utilities.toNativeSeparators(fname)
2553 2581 self.__lastChangeGroupPath = os.path.dirname(fname)
2554 ext = QFileInfo(fname).suffix() 2582
2555 if not ext: 2583 args = self.initCommand("bundle")
2556 ex = selectedFilter.split("(*")[1].split(")")[0] 2584 if all:
2557 if ex: 2585 args.append("--all")
2558 fname += ex 2586 for rev in revs:
2559 if QFileInfo(fname).exists(): 2587 args.append("--rev")
2560 res = E5MessageBox.yesNo( 2588 args.append(rev)
2561 self.__ui, 2589 for baseRev in baseRevs:
2562 self.tr("Create changegroup"), 2590 args.append("--base")
2563 self.tr("<p>The Mercurial changegroup file <b>{0}</b> " 2591 args.append(baseRev)
2564 "already exists. Overwrite it?</p>") 2592 if compression:
2565 .format(fname), 2593 args.append("--type")
2566 icon=E5MessageBox.Warning) 2594 args.append(compression)
2567 if not res: 2595 args.append(fname)
2568 return 2596
2569 fname = Utilities.toNativeSeparators(fname) 2597 dia = HgDialog(self.tr('Create changegroup'), self)
2570 self.__lastChangeGroupPath = os.path.dirname(fname) 2598 res = dia.startProcess(args, repodir)
2571 2599 if res:
2572 args = self.initCommand("bundle") 2600 dia.exec_()
2573 if all:
2574 args.append("--all")
2575 for rev in revs:
2576 args.append("--rev")
2577 args.append(rev)
2578 for baseRev in baseRevs:
2579 args.append("--base")
2580 args.append(baseRev)
2581 if compression:
2582 args.append("--type")
2583 args.append(compression)
2584 args.append(fname)
2585
2586 dia = HgDialog(self.tr('Create changegroup'), self)
2587 res = dia.startProcess(args, repodir)
2588 if res:
2589 dia.exec_()
2590 2601
2591 def hgPreviewBundle(self, name): 2602 def hgPreviewBundle(self, name):
2592 """ 2603 """
2593 Public method used to view the log of incoming changes from a 2604 Public method used to view the log of incoming changes from a
2594 changegroup file. 2605 changegroup file.

eric ide

mercurial