Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: de2c90228d
Fetching contributors…

Cannot retrieve contributors at this time

executable file 1328 lines (1186 sloc) 50.219 kB
# coding=utf8
import sublime_plugin, sublime
import os
import re
from sidebar.SideBarSelection import SideBarSelection
from sidebar.SideBarGit import SideBarGit
try:
from BufferScroll import BufferScrollAPI
except:
BufferScrollAPI = False
class Object():
pass
#run last command again on a focused tab when pressing F5
class SideBarGitRefreshTabContentsByRunningCommandAgain(sublime_plugin.WindowCommand):
def run(self):
window = sublime.active_window()
if not window:
return
view = window.active_view()
if view is None:
return
if view.settings().has('SideBarGitIsASideBarGitTab'):
SideBarGit().run(
[],
view.settings().get('SideBarGitModal'),
view.settings().get('SideBarGitBackground'),
view,
view.settings().get('SideBarGitCommand'),
view.settings().get('SideBarGitItem'),
view.settings().get('SideBarGitToStatusBar'),
view.settings().get('SideBarGitTitle'),
view.settings().get('SideBarGitNoResults'),
view.settings().get('SideBarGitSyntaxFile')
)
elif view.file_name():
if BufferScrollAPI:
BufferScrollAPI.save(view, 'sidebar-git');
view.run_command("revert")
if BufferScrollAPI:
BufferScrollAPI.restore(view, 'sidebar-git');
def is_enabled(self):
window = sublime.active_window()
if not window:
return False
view = window.active_view()
if view is None:
return False
if view.settings().has('SideBarGitIsASideBarGitTab') or view.file_name():
return True
def closed_affected_items(items):
closed_items = []
for item in items:
if not item.isDirectory():
closed_items += item.close_associated_buffers()
return closed_items
def reopen_affected_items(closed_items):
for item in closed_items:
file_name, window, view_index = item
if window and os.path.exists(file_name):
view = window.open_file(file_name)
window.set_view_index(view, view_index[0], view_index[1])
#Following code for selected files or folders
class SideBarGitDiffAllChangesSinceLastCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', 'HEAD', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDiffAllChangesSinceLastCommitIgnoreWhiteSpaceCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', 'HEAD', '--no-color', '-w', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDiffChangesNotStagedCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDiffChangesStagedNotCommitedCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', '--no-color', '--staged', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDiffBetweenIndexAndLastCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', '--no-color', '--cached', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDiffBetweenRemoteAndLastLocalCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', '--no-color', 'origin/master..', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDiffBetweenLastLocalCommitAndRemoteCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'diff', '--no-color', '..origin/master', '--', item.forCwdSystemName()]
object.title = 'Diff: '+item.name()+'.diff'
object.no_results = 'No differences to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDifftoolAllChangesSinceLastCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'difftool', 'HEAD', '--', item.forCwdSystemName()]
SideBarGit().run(object, background=True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDifftoolChangesNotStagedCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'difftool', '--', item.forCwdSystemName()]
SideBarGit().run(object, background=True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDifftoolChangesStagedNotCommitedCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'difftool', '--staged', '--', item.forCwdSystemName()]
SideBarGit().run(object, background=True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDifftoolBetweenIndexAndLastCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'difftool', '--cached', '--', item.forCwdSystemName()]
SideBarGit().run(object, background=True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDifftoolBetweenRemoteAndLastLocalCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'difftool', 'origin/master..', '--', item.forCwdSystemName()]
SideBarGit().run(object, background=True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitDifftoolBetweenLastLocalCommitAndRemoteCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'difftool', '..origin/master', '--', item.forCwdSystemName()]
SideBarGit().run(object, background=True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogStatShortLatestCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '-n', '30', '--pretty=short', '--decorate', '--graph', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogStatShortFullCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '--pretty=short', '--decorate', '--graph', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogStatLatestCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '-n', '30', '--stat', '--graph', '--decorate', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogStatFullCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '--stat', '--graph', '--decorate', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogStatListLatestCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
import sys
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '-n', '50', '--pretty=format:%s'.encode(sys.getfilesystemencoding()), '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogStatListCommitLatestCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
import sys
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '-n', '50', '--pretty=format:%h %s'.encode(sys.getfilesystemencoding()), '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogExtendedLatestCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '-n', '30', '-p', '--decorate', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogExtendedFullCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', '-p', '--decorate', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLogSinceLatestPushCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'log', 'origin/master..', '--stat', '--graph', '--decorate', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Log: '+item.name()
object.no_results = 'No log to show'
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitReflogCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'reflog', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Reflog: '+item.name()
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBlameCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'blame', '--no-color', '--', item.forCwdSystemName()]
object.title = 'Blame: '+item.name()
object.word_wrap = False
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).hasFiles()
class SideBarGitStatusCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'status', '--untracked-files=all', '--ignored', '--', item.forCwdSystemName()]
object.title = 'Status: '+item.name()
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRevertTrackedCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
failed = False
if confirm == False:
SideBarGit().confirm('Discard changes to tracked on selected items? ', self.run, paths)
else:
items = SideBarSelection(paths).getSelectedItems()
closed_items = closed_affected_items(items)
for item in items:
object = Object()
object.item = item
object.command = ['git', 'checkout', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Discarded changes to tracked on selected items')
reopen_affected_items(closed_items)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRevertTrackedCleanUntrackedCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
failed = False
if confirm == False:
SideBarGit().confirm('Discard changes to tracked and clean untracked on selected items? ', self.run, paths)
else:
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'checkout', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
object = Object()
object.item = item
object.command = ['git', 'clean', '-f', '-d', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Discarded changes to tracked and cleaned untracked on selected items')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRevertTrackedCleanUntrackedUnstageCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
failed = False
if confirm == False:
SideBarGit().confirm('Discard changes to tracked, clean untracked and unstage on selected items? ', self.run, paths)
else:
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'checkout', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
object = Object()
object.item = item
object.command = ['git', 'clean', '-f', '-d', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
object = Object()
object.item = item
object.command = ['git', 'reset', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Discarded changes to tracked, cleaned untracked and unstage on selected items')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRevertTrackedUnstageCleanUntrackedCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
failed = False
if confirm == False:
SideBarGit().confirm('Discard changes to tracked, unstage and clean untracked on selected items? ', self.run, paths)
else:
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'checkout', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
object = Object()
object.item = item
object.command = ['git', 'reset', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
object = Object()
object.item = item
object.command = ['git', 'clean', '-f', '-d', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Discarded changes to tracked, unstage and cleaned untracked on selected items')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRevertUnstageCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
failed = False
if confirm == False:
SideBarGit().confirm('Unstage selected items? ', self.run, paths)
else:
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'reset', 'HEAD', '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Unstage selected items')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitCheckoutToCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
failed = False
if input == False:
SideBarGit().prompt('Checkout selected items to object: ', '', self.run, paths)
elif content != '':
import sys
for item in SideBarSelection(paths).getSelectedItems():
object = Object()
object.item = item
object.command = ['git', 'checkout', content.encode(sys.getfilesystemencoding()), '--', item.forCwdSystemName()]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Checkout selected items to "'+content+'"')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitIgnoreOpenCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
item.path(item.dirname())
while not os.path.exists(item.join('.git')):
if os.path.exists(item.join('.gitignore')):
break;
if item.dirname() == item.path():
break;
item.path(item.dirname())
if os.path.exists(item.join('.gitignore')):
item.path(item.join('.gitignore'))
else:
item.path(item.join('.gitignore'))
item.create()
item.edit()
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitIgnoreAddCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedItems():
original = item.path()
originalIsDirectory = item.isDirectory()
item.path(item.dirname())
while not os.path.exists(item.join('.git')):
if os.path.exists(item.join('.gitignore')):
break;
if item.dirname() == item.path():
break;
item.path(item.dirname())
if os.path.exists(item.join('.gitignore')):
item.path(item.join('.gitignore'))
else:
if os.path.exists(item.join('.git')):
item.path(item.join('.gitignore'))
item.create()
else:
SideBarGit().status('Unable to found repository for "'+original.encode('utf-8')+'"')
continue
ignore_entry = re.sub('^/+', '', original.replace(item.dirname(), '').replace('\\', '/'))
if originalIsDirectory:
ignore_entry = '/'+ignore_entry
content = item.contentUTF8().strip()+'\n'+ignore_entry
content = content.replace('\r\n', '\n')
content = "\n".join(list(set(content.split('\n'))))
item.write(content.strip())
SideBarGit().status('Ignored file "'+ignore_entry+'" on '+item.path())
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
# Following code for selected folders. Dirname for when a file is selected.
class SideBarGitInitCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedDirectoriesOrDirnames():
object = Object()
object.item = item
object.command = ['git', 'init']
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitCloneCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
failed = False
if input == False:
SideBarGit().prompt('Enter URL to clone: ', sublime.get_clipboard(), self.run, paths)
elif content != '':
import sys
for item in SideBarSelection(paths).getSelectedDirectoriesOrDirnames():
object = Object()
object.item = item
object.command = ['git', 'clone', '--recursive', content.encode(sys.getfilesystemencoding())]
object.to_status_bar = True
if not SideBarGit().run(object, True):
failed = True
if not failed:
SideBarGit().status('Cloned URL "'+content+'"')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitGuiCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarSelection(paths).getSelectedDirectoriesOrDirnames():
object = Object()
object.item = item
object.command = ['git','gui']
SideBarGit().run(object, False, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitGitkCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False):
for item in SideBarSelection(paths).getSelectedDirectoriesOrDirnames():
object = Object()
object.item = item
object.command = ['gitk']
SideBarGit().run(object, False, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
# Following code for unique selected repos found on items selected
class SideBarGitCheckoutRepositoryToCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
failed = False
if input == False:
SideBarGit().prompt('Checkout repository to object: ', '', self.run, paths)
elif content != '':
import sys
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git', 'checkout', content.encode(sys.getfilesystemencoding())]
if not SideBarGit().run(object):
failed = True
if not failed:
SideBarGit().status('Checkout repository to "'+content+'"')
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPushCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git','push']
object.to_status_bar = True
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPushWithOptionsCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Push with options: ', "git push aRemoteName aLocalBranch:aRemoteBranch", self.run, paths)
elif content != '':
import sys
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = content.encode(sys.getfilesystemencoding()).split(' ')
object.to_status_bar = True
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPushAndPushTagsCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git','push','&&','git','push','--tags']
object.to_status_bar = True
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPushAllBranchesCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git','push','origin','*:*']
object.to_status_bar = True
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPushTagsCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git','push','--tags']
object.to_status_bar = True
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPullCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
if confirm == False:
SideBarGit().confirm('Pull from default? ', self.run, paths)
else:
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git','pull']
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitPullWithOptionsCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Pull with options: ', "git pull", self.run, paths)
elif content != '':
import sys
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = content.encode(sys.getfilesystemencoding()).split(' ')
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitFetchCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
if confirm == False:
SideBarGit().confirm('Fetch from default? ', self.run, paths)
else:
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git','fetch']
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitFetchWithOptionsCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Fetch with options: ', "git fetch aRemoteName aRemoteBranch:aLocalBranch", self.run, paths)
elif content != '':
import sys
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = content.encode(sys.getfilesystemencoding()).split(' ')
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitCommitUndoCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
if confirm == False:
SideBarGit().confirm('Undo Commit? ', self.run, paths)
else:
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.command = ['git', 'reset', '--soft', 'HEAD^']
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
# Following code for files and folders for each unique selected repos
class SideBarGitCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Enter a commit message: ', '', self.run, paths)
sublime.active_window().run_command('toggle_setting', {"setting": "spell_check"})
elif content != '':
import sys
content = (content[0].upper() + content[1:]).encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
commitCommand = ['git', 'commit', '-m', content, '--']
for item in repo.items:
commitCommand.append(item.forCwdSystemPathRelativeFrom(repo.repository.path()))
object = Object()
object.item = repo.repository
object.to_status_bar = True
object.command = commitCommand
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitCommitAllCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Enter a commit message: ', '', self.run, paths)
sublime.active_window().run_command('toggle_setting', {"setting": "spell_check"})
elif content != '':
import sys
content = (content[0].upper() + content[1:]).encode(sys.getfilesystemencoding())
for item in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = item.repository
object.to_status_bar = True
object.command = ['git', 'commit', '-a', '-m', content]
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitCommitAmendCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
commitCommand = ['git', 'commit', '--amend', '-C', 'HEAD', '--']
for item in repo.items:
commitCommand.append(item.forCwdSystemPathRelativeFrom(repo.repository.path()))
object = Object()
object.item = repo.repository
object.to_status_bar = True
object.command = commitCommand
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitAddCommitCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Enter a commit message: ', '', self.run, paths)
sublime.active_window().run_command('toggle_setting', {"setting": "spell_check"})
elif content != '':
import sys
content = (content[0].upper() + content[1:]).encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
commitCommandAdd = ['git', 'add', '--']
commitCommandCommit = ['git', 'commit', '-m', content, '--']
for item in repo.items:
commitCommandAdd.append(item.forCwdSystemPathRelativeFromRecursive(repo.repository.path()))
commitCommandCommit.append(item.forCwdSystemPathRelativeFrom(repo.repository.path()))
object = Object()
object.item = repo.repository
object.command = commitCommandAdd
SideBarGit().run(object)
object = Object()
object.item = repo.repository
object.to_status_bar = True
object.command = commitCommandCommit
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitAddCommitPushCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Enter a commit message: ', '', self.run, paths)
sublime.active_window().run_command('toggle_setting', {"setting": "spell_check"})
elif content != '':
import sys
content = (content[0].upper() + content[1:]).encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
commitCommandAdd = ['git', 'add', '--']
commitCommandCommit = ['git', 'commit', '-m', content, '--']
for item in repo.items:
commitCommandAdd.append(item.forCwdSystemPathRelativeFromRecursive(repo.repository.path()))
commitCommandCommit.append(item.forCwdSystemPathRelativeFrom(repo.repository.path()))
object = Object()
object.item = repo.repository
object.command = commitCommandAdd
SideBarGit().run(object)
object = Object()
object.item = repo.repository
object.to_status_bar = True
object.command = commitCommandCommit
SideBarGit().run(object)
object = Object()
object.item = repo.repository
object.command = ['git','push']
SideBarGit().run(object, True)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitAddCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
command = ['git', 'add', '--']
for item in repo.items:
command.append(item.forCwdSystemPathRelativeFromRecursive(repo.repository.path()))
object = Object()
object.item = repo.repository
object.command = command
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRemoveKeepLocalCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
if confirm == False:
SideBarGit().confirm('Remove from repository, keep local copies? ', self.run, paths)
else:
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
command = ['git', 'rm', '-r', '--cached', '--']
for item in repo.items:
command.append(item.forCwdSystemPathRelativeFrom(repo.repository.path()))
object = Object()
object.item = repo.repository
object.command = command
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRemoveCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], confirm = False, drop_me = ''):
if confirm == False:
SideBarGit().confirm('Remove from repository, and remove local copies? ', self.run, paths)
else:
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
command = ['git', 'rm', '-r', '-f', '--']
for item in repo.items:
command.append(item.forCwdSystemPathRelativeFrom(repo.repository.path()))
object = Object()
object.item = repo.repository
object.command = command
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitLiberalCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('[SideBarGit@SublimeText ./]:', 'git ', self.run, paths)
elif content != '':
import sys
for item in SideBarSelection(paths).getSelectedDirectoriesOrDirnames():
object = Object()
object.item = item
object.command = content.encode(sys.getfilesystemencoding()).split(' ')
object.title = content
object.no_results = 'No output'
object.syntax_file = 'Packages/Diff/Diff.tmLanguage'
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRemoteAddCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('Remote add: ', "git remote add aRemoteName "+sublime.get_clipboard(), self.run, paths)
elif content != '':
import sys
content = content.encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = content.split(' ')
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchNewFromCurrentCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('New branch: ', "", self.run, paths)
elif content != '':
import sys
content = content.encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', '-b', content]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchNewFromMasterCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('New branch: ', "", self.run, paths)
elif content != '':
import sys
content = content.encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', 'master']
SideBarGit().run(object)
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', '-b', content]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchNewFromCleanCurrentCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('New branch: ', "", self.run, paths)
elif content != '':
import sys
content = content.encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', '-B', content]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchNewFromCleanMasterCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], input = False, content = ''):
if input == False:
SideBarGit().prompt('New branch: ', "", self.run, paths)
elif content != '':
import sys
content = content.encode(sys.getfilesystemencoding())
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', 'master']
SideBarGit().run(object)
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', '-B', content]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchSwitchToMasterCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'checkout', 'master']
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchSwitchToCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'branch', '-v']
object.silent = True
SideBarGit().run(object)
SideBarGit().quickPanel(self.on_done, repo.repository, (SideBarGit.last_stdout.decode('utf-8')).split('\n'))
def on_done(self, extra, data, result):
result = data[result].strip()
if result.startswith("*"):
return
else:
import sys
branch = result.split(' ')[0]
object = Object()
object.item = extra
object.command = ['git', 'checkout', branch.encode(sys.getfilesystemencoding())]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchDeleteCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'branch', '-v']
object.silent = True
SideBarGit().run(object)
SideBarGit().quickPanel(self.on_done, repo.repository, (SideBarGit.last_stdout.decode('utf-8')).split('\n'))
def on_done(self, extra, data, result):
result = data[result].strip()
if result.startswith("*"):
return
else:
import sys
branch = result.split(' ')[0]
object = Object()
object.item = extra
object.command = ['git', 'branch', '-d', branch.encode(sys.getfilesystemencoding())]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitBranchDeleteForceCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'branch', '-v']
object.silent = True
SideBarGit().run(object)
SideBarGit().quickPanel(self.on_done, repo.repository, (SideBarGit.last_stdout.decode('utf-8')).split('\n'))
def on_done(self, extra, data, result):
result = data[result].strip()
if result.startswith("*"):
return
else:
import sys
branch = result.split(' ')[0]
object = Object()
object.item = extra
object.command = ['git', 'branch', '-D', branch.encode(sys.getfilesystemencoding())]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitMergeToCurrentFromCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'branch', '-v']
object.silent = True
SideBarGit().run(object)
SideBarGit().quickPanel(self.on_done, repo.repository, (SideBarGit.last_stdout.decode('utf-8')).split('\n'))
def on_done(self, extra, data, result):
result = data[result].strip()
if result.startswith("*"):
return
else:
import sys
branch = result.split(' ')[0]
object = Object()
object.item = extra
object.command = ['git', 'merge', branch.encode(sys.getfilesystemencoding())]
object.to_status_bar = True
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
class SideBarGitRebaseCurrentIntoMasterCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
for repo in SideBarGit().getSelectedRepos(SideBarSelection(paths).getSelectedItems()):
object = Object()
object.item = repo.repository
object.command = ['git', 'rebase', 'master']
SideBarGit().run(object)
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0
# }
# this.tagAdd = function(event)
# {
# var aMsg = this.s.prompt('Enter tag name to add…', '');
# if(aMsg != '')
# {
# var repos = this.getSelectedRepos(event);
# var commands = '';
# for(var id in repos.r)
# {
# commands += 'cd '+repos.r[id].cwd+'';
# commands += '\n';
# commands += 'git tag "'+this.s.filePathEscape(aMsg)+'" >>'+repos.obj.output+' 2>&1';
# commands += '\n';
# }
# this.s.fileWrite(repos.obj.sh, commands);
# this.run(repos.obj.sh, repos.obj.outputFile, 'Tag "'+aMsg+'" added', false, true);
# }
# }
# this.tagRemove = function(event)
# {
# var aMsg = this.s.prompt('Enter tag name to remove…', '');
# if(aMsg != '')
# {
# var repos = this.getSelectedRepos(event);
# var commands = '';
# for(var id in repos.r)
# {
# commands += 'cd '+repos.r[id].cwd+'';
# commands += '\n';
# commands += 'git tag -d "'+this.s.filePathEscape(aMsg)+'" >>'+repos.obj.output+' 2>&1';
# commands += '\n';
# }
# this.s.fileWrite(repos.obj.sh, commands);
# this.run(repos.obj.sh, repos.obj.outputFile, '', false, true);
# }
# }
# this.tagAuto = function(event)
# {
# var repos = this.getSelectedRepos(event);
# var commands = '';
# for(var id in repos.r)
# {
# var version = this.repositoryPreference(id, 'version') || 0;
# version++;
# this.repositoryPreference(id, 'version', version);
# commands += 'cd '+repos.r[id].cwd+'';
# commands += '\n';
# commands += 'git tag "'+this.s.filePathEscape(this.s.now().replace(/-/g, '').substr(2, 6)+'.'+version)+'" >>'+repos.obj.output+' 2>&1';
# commands += '\n';
# }
# this.s.fileWrite(repos.obj.sh, commands);
# this.run(repos.obj.sh, repos.obj.outputFile, 'Tag '+this.s.now().replace(/-/g, '').substr(2, 6)+' added', false, true);
# }
# this.tagList = function(event)
# {
# var repos = this.getSelectedRepos(event);
# var commands = '';
# for(var id in repos.r)
# {
# commands += 'cd '+repos.r[id].cwd+'';
# commands += '\n';
# commands += 'git tag -l >>'+repos.obj.output+' 2>&1';
# commands += '\n';
# }
# this.s.fileWrite(repos.obj.sh, commands);
# this.run(repos.obj.sh, repos.obj.outputFile, '', true, false);
# }
# this.tagsGetFromRepo = function(aObj)
# {
# var sh = this.s.fileCreateTemporal('kGit.sh', '');
# this.s.fileWrite(sh, 'cd '+aObj.cwd+' \n echo `git for-each-ref refs/tags --sort=-authordate` \n');
# var tags = this.run(sh, sh+'.diff', '', false, false, true).split('\n');
# tags.shift();
# tags.shift();
# tags.shift();
# tags.shift();
# tags.shift();
# tags = tags.join('');
# tags = tags.split('refs/tags/');
# tags.shift();
# for(var id in tags)
# tags[id] = tags[id].split(' ')[0];
# tags.reverse();
# return tags;
# }
# //TODO: hardcoded branch name
# }
# this.diffBetweenLatestTagAndLastCommit = function(event)
# {
# var selected = this.getSelectedPaths(event);
# for(var id in selected)
# {
# var obj = this.getPaths(selected[id]);
# var tags = this.tagsGetFromRepo(obj);
# this.s.fileWrite(obj.sh, 'cd '+obj.cwd+'\ngit diff "'+(tags.pop() || '')+'"... -- '+obj.selected+' >>'+obj.output+' 2>&1\n');
# this.run(obj.sh, obj.outputFile, 'No difference found', true);
# }
# }
# this.diffBetweenTheTwoLatestTags = function(event)
# {
# var selected = this.getSelectedPaths(event);
# for(var id in selected)
# {
# var obj = this.getPaths(selected[id]);
# var tags = this.tagsGetFromRepo(obj);
# this.s.fileWrite(obj.sh, 'cd '+obj.cwd+'\ngit diff "'+(tags[tags.length-2] || '')+'".."'+(tags[tags.length-1] || '')+'" -- '+obj.selected+' >>'+obj.output+' 2>&1\n');
# this.run(obj.sh, obj.outputFile, 'No difference found', true);
# }
# }
# this.logSinceLatestTag = function(event)
# {
# var selected = this.getSelectedPaths(event);
# for(var id in selected)
# {
# var obj = this.getPaths(selected[id]);
# var tags = this.tagsGetFromRepo(obj);
# this.s.fileWrite(obj.sh, 'cd '+obj.cwd+'\n echo "log:'+this.s.filePathEscape(this.s.pathToNix(obj.selectedFile))+'" >> '+obj.output+' \n git log "'+(tags.pop() || '')+'"... --stat --graph -- '+obj.selected+' >>'+obj.output+' 2>&1\n');
# this.run(obj.sh, obj.outputFile, 'No log to show', true);
# }
# this.logBetweenTheTwoLatestTags = function(event)
# {
# var selected = this.getSelectedPaths(event);
# for(var id in selected)
# {
# var obj = this.getPaths(selected[id]);
# var tags = this.tagsGetFromRepo(obj);
# this.s.fileWrite(obj.sh, 'cd '+obj.cwd+' echo "log:'+this.s.filePathEscape(this.s.pathToNix(obj.selectedFile))+'" >> '+obj.output+' \n git log "'+(tags[tags.length-2] || '')+'".."'+(tags[tags.length-1] || '')+'" --stat --graph -- '+obj.selected+' >>'+obj.output+' 2>&1\n');
# this.run(obj.sh, obj.outputFile, 'No log to show', true);
# }
# }
Jump to Line
Something went wrong with that request. Please try again.