def grep(): """Prompt and use 'git grep' to find the content.""" # This should be a command in cola.cmds. txt, ok = qtutils.prompt('grep') if not ok: return cola.notifier().broadcast(signals.grep, txt)
def stash_save(self): """Saves the worktree in a stash This prompts the user for a stash name and creates a git stash named accordingly. """ stash_name, ok = qtutils.prompt('Save Stash', 'Enter a name for the stash') if not ok or not stash_name: return # Sanitize the stash name stash_name = utils.sanitize(stash_name) if stash_name in self.model.stash_names: qtutils.critical('Oops!', 'A stash named "%s" already exists' % stash_name) return args = [] if self.view.keep_index.isChecked(): args.append('--keep-index') args.append(stash_name) qtutils.log(*self.model.git.stash('save', with_stderr=True, with_status=True, *args)) self.view.accept() cola.notifier().broadcast(signals.rescan)
def add(self): path, ok = qtutils.prompt(N_('Path to git repository'), title=N_('Enter Git Repository'), text=core.getcwd()) if not ok: return self.settings.bookmarks.append(path) self.update_bookmarks() self.save()
def add(self): path, ok = qtutils.prompt(N_('Path to git repository'), title=N_('Enter Git Repository'), text=core.getcwd()) if not ok: return self.model.bookmarks.append(path) self.update_bookmarks() self.save()
def add(self): path, ok = qtutils.prompt( "Path to git repository:", title="Enter Git Repository", text=core.decode(os.getcwd()) ) if not ok: return self.model.bookmarks.append(path) self.update_bookmarks() self.save()
def clone_repo(spawn=True): """ Present GUI controls for cloning a repository A new cola session is invoked when 'spawn' is True. """ url, ok = qtutils.prompt('Path or URL to clone (Env. $VARS okay)') url = os.path.expandvars(core.encode(url)) if not ok or not url: return None try: # Pick a suitable basename by parsing the URL newurl = url.replace('\\', '/') default = newurl.rsplit('/', 1)[-1] if default == '.git': # The end of the URL is /.git, so assume it's a file path default = os.path.basename(os.path.dirname(newurl)) if default.endswith('.git'): # The URL points to a bare repo default = default[:-4] if url == '.': # The URL is the current repo default = os.path.basename(os.getcwd()) if not default: raise except: cola.notifier().broadcast(signals.information, 'Error Cloning', 'Could not parse: "%s"' % url) qtutils.log(1, 'Oops, could not parse git url: "%s"' % url) return None # Prompt the user for a directory to use as the parent directory parent = QtGui.QApplication.instance().activeWindow() msg = 'Select a parent directory for the new clone' dirname = qtutils.opendir_dialog(parent, msg, cola.model().getcwd()) if not dirname: return None count = 1 dirname = core.decode(dirname) destdir = os.path.join(dirname, core.decode(default)) olddestdir = destdir if os.path.exists(destdir): # An existing path can be specified msg = ('"%s" already exists, cola will create a new directory' % destdir) cola.notifier().broadcast(signals.information, 'Directory Exists', msg) # Make sure the new destdir doesn't exist while os.path.exists(destdir): destdir = olddestdir + str(count) count += 1 cola.notifier().broadcast(signals.clone, core.decode(url), destdir, spawn=spawn) return destdir
def clone_repo(spawn=True): """ Present GUI controls for cloning a repository A new cola session is invoked when 'spawn' is True. """ url, ok = qtutils.prompt('Path or URL to clone (Env. $VARS okay)') url = os.path.expandvars(core.encode(url)) if not ok or not url: return None try: # Pick a suitable basename by parsing the URL newurl = url.replace('\\', '/') default = newurl.rsplit('/', 1)[-1] if default == '.git': # The end of the URL is /.git, so assume it's a file path default = os.path.basename(os.path.dirname(newurl)) if default.endswith('.git'): # The URL points to a bare repo default = default[:-4] if url == '.': # The URL is the current repo default = os.path.basename(os.getcwd()) if not default: raise except: cola.notifier().broadcast(signals.information, 'Error Cloning', 'Could not parse: "%s"' % url) qtutils.log(1, 'Oops, could not parse git url: "%s"' % url) return None # Prompt the user for a directory to use as the parent directory msg = 'Select a parent directory for the new clone' dirname = qtutils.opendir_dialog(msg, cola.model().getcwd()) if not dirname: return None count = 1 dirname = core.decode(dirname) destdir = os.path.join(dirname, core.decode(default)) olddestdir = destdir if os.path.exists(destdir): # An existing path can be specified msg = ('"%s" already exists, cola will create a new directory' % destdir) cola.notifier().broadcast(signals.information, 'Directory Exists', msg) # Make sure the new destdir doesn't exist while os.path.exists(destdir): destdir = olddestdir + str(count) count += 1 cola.notifier().broadcast(signals.clone, core.decode(url), destdir, spawn=spawn) return destdir
def clone_repo(spawn=True): """ Present GUI controls for cloning a repository A new cola session is invoked when 'spawn' is True. """ url, ok = qtutils.prompt(N_('Path or URL to clone (Env. $VARS okay)')) url = os.path.expandvars(core.encode(url)) if not ok or not url: return None try: # Pick a suitable basename by parsing the URL newurl = url.replace('\\', '/').rstrip('/') default = newurl.rsplit('/', 1)[-1] if default == '.git': # The end of the URL is /.git, so assume it's a file path default = os.path.basename(os.path.dirname(newurl)) if default.endswith('.git'): # The URL points to a bare repo default = default[:-4] if url == '.': # The URL is the current repo default = os.path.basename(os.getcwd()) if not default: raise except: Interaction.information( N_('Error Cloning'), N_('Could not parse Git URL: "%s"') % url) Interaction.log(N_('Could not parse Git URL: "%s"') % url) return None # Prompt the user for a directory to use as the parent directory msg = N_('Select a parent directory for the new clone') dirname = qtutils.opendir_dialog(msg, cola.model().getcwd()) if not dirname: return None count = 1 dirname = core.decode(dirname) destdir = os.path.join(dirname, core.decode(default)) olddestdir = destdir if os.path.exists(destdir): # An existing path can be specified msg = (N_('"%s" already exists, cola will create a new directory') % destdir) Interaction.information('Directory Exists', msg) # Make sure the new destdir doesn't exist while os.path.exists(destdir): destdir = olddestdir + str(count) count += 1 if cmds.do(cmds.Clone, core.decode(url), destdir, spawn=spawn): return destdir return None
def prompt_for_clone(): """ Present a GUI for cloning a repository. Returns the target directory and URL """ url, ok = qtutils.prompt(N_('Path or URL to clone (Env. $VARS okay)')) url = utils.expandpath(url) if not ok or not url: return None try: # Pick a suitable basename by parsing the URL newurl = url.replace('\\', '/').rstrip('/') default = newurl.rsplit('/', 1)[-1] if default == '.git': # The end of the URL is /.git, so assume it's a file path default = os.path.basename(os.path.dirname(newurl)) if default.endswith('.git'): # The URL points to a bare repo default = default[:-4] if url == '.': # The URL is the current repo default = os.path.basename(core.getcwd()) if not default: raise except: Interaction.information( N_('Error Cloning'), N_('Could not parse Git URL: "%s"') % url) Interaction.log(N_('Could not parse Git URL: "%s"') % url) return None # Prompt the user for a directory to use as the parent directory msg = N_('Select a parent directory for the new clone') dirname = qtutils.opendir_dialog(msg, main.model().getcwd()) if not dirname: return None count = 1 destdir = os.path.join(dirname, default) olddestdir = destdir if core.exists(destdir): # An existing path can be specified msg = (N_('"%s" already exists, cola will create a new directory') % destdir) Interaction.information(N_('Directory Exists'), msg) # Make sure the new destdir doesn't exist while core.exists(destdir): destdir = olddestdir + str(count) count += 1 return url, destdir
def stash_save(self): """Saves the worktree in a stash This prompts the user for a stash name and creates a git stash named accordingly. """ if not qtutils.question(self.view, 'Stash Changes?', 'This will stash your current ' 'changes away for later use.\n' 'Continue?'): return stash_name, ok = qtutils.prompt('Enter a name for this stash') if not ok: return while stash_name in self.model.stash_list: qtutils.information('Oops!', 'That name already exists. ' 'Please enter another name.') stash_name, ok = qtutils.prompt('Enter a name for this stash') if not ok: return if not stash_name: return # Sanitize the stash name stash_name = utils.sanitize(stash_name) args = [] if self.model.keep_index: args.append('--keep-index') args.append(stash_name) qtutils.log(*self.model.git.stash('save', with_stderr=True, with_status=True, *args)) self.view.accept()
def add_bookmark(self): path, ok = qtutils.prompt(N_('Path to git repository'), title=N_('Enter Git Repository'), text=core.getcwd()) if not ok: return normpath = utils.expandpath(path) if git.is_git_worktree(normpath): self.settings.add_bookmark(normpath) self.settings.save() self.refresh() else: qtutils.critical(N_('Error'), N_('%s is not a Git repository.') % path)
def clone_repo(parent, spawn=True): """ Present GUI controls for cloning a repository A new cola session is invoked when 'spawn' is True. """ url, ok = qtutils.prompt("Path or URL to clone (Env. $VARS okay)") url = os.path.expandvars(url) if not ok or not url: return None try: # Pick a suitable basename by parsing the URL newurl = url.replace("\\", "/") default = newurl.rsplit("/", 1)[-1] if default == ".git": # The end of the URL is /.git, so assume it's a file path default = os.path.basename(os.path.dirname(newurl)) if default.endswith(".git"): # The URL points to a bare repo default = default[:-4] if url == ".": # The URL is the current repo default = os.path.basename(os.getcwd()) if not default: raise except: cola.notifier().broadcast(signals.information, "Error Cloning", 'Could not parse: "%s"' % url) qtutils.log(1, 'Oops, could not parse git url: "%s"' % url) return None # Prompt the user for a directory to use as the parent directory msg = "Select a parent directory for the new clone" dirname = qtutils.opendir_dialog(parent, msg, cola.model().getcwd()) if not dirname: return None count = 1 destdir = os.path.join(dirname, default) olddestdir = destdir if os.path.exists(destdir): # An existing path can be specified msg = '"%s" already exists, cola will create a new directory' % destdir cola.notifier().broadcast(signals.information, "Directory Exists", msg) # Make sure the new destdir doesn't exist while os.path.exists(destdir): destdir = olddestdir + str(count) count += 1 cola.notifier().broadcast(signals.clone, url, destdir, spawn=spawn) return destdir
def stash_save(self): """Saves the worktree in a stash This prompts the user for a stash name and creates a git stash named accordingly. """ stash_name, ok = qtutils.prompt("Save Stash", "Enter a name for the stash") if not ok or not stash_name: return # Sanitize the stash name stash_name = utils.sanitize(stash_name) if stash_name in self.names: qtutils.critical("Oops!", 'A stash named "%s" already exists' % stash_name) return keep_index = self.keep_index.isChecked() self.emit(SIGNAL(save_stash), stash_name, keep_index) self.accept() self.emit(SIGNAL(rescan))
def stash_save(self): """Saves the worktree in a stash This prompts the user for a stash name and creates a git stash named accordingly. """ stash_name, ok = qtutils.prompt(N_('Save Stash'), N_('Enter a name for the stash')) if not ok or not stash_name: return # Sanitize the stash name stash_name = utils.sanitize(stash_name) if stash_name in self.names: qtutils.critical(N_('Error: Stash exists'), N_('A stash named "%s" already exists') % stash_name) return keep_index = self.keep_index.isChecked() cmds.do(SaveStash, stash_name, keep_index) self.accept() cmds.do(cmds.Rescan)
def stash_save(self): """Saves the worktree in a stash This prompts the user for a stash name and creates a git stash named accordingly. """ stash_name, ok = qtutils.prompt('Save Stash', 'Enter a name for the stash') if not ok or not stash_name: return # Sanitize the stash name stash_name = utils.sanitize(stash_name) if stash_name in self.names: qtutils.critical('Oops!', 'A stash named "%s" already exists' % stash_name) return keep_index = self.keep_index.isChecked() cmds.do(SaveStash, stash_name, keep_index) self.accept() cmds.do(cmds.Rescan)