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. |