diff -Nru rabbitvcs-0.15.0.5/MAINTAINERS rabbitvcs-0.15.2/MAINTAINERS --- rabbitvcs-0.15.0.5/MAINTAINERS 2009-09-28 12:57:13.000000000 +0000 +++ rabbitvcs-0.15.2/MAINTAINERS 2012-09-23 21:13:00.000000000 +0000 @@ -1,11 +1,10 @@ -Bruce van der Kooij -E-mail: brucevdkooij@gmail.com -Userid: brucevdkooij +Adam Plumb +E-mail: adamplumb@gmail.com +Userid: adamplumb Jason Heeris E-mail: jason.heeris@gmail.com Userid: jasonheeris -Adam Plumb -E-mail: adamplumb@gmail.com -Userid: adamplumb +Andreas +E-mail: electronics45@gmail.com diff -Nru rabbitvcs-0.15.0.5/README rabbitvcs-0.15.2/README --- rabbitvcs-0.15.0.5/README 2011-10-21 16:05:08.000000000 +0000 +++ rabbitvcs-0.15.2/README 2012-09-23 21:13:00.000000000 +0000 @@ -1,4 +1,3 @@ -fdgdfgsd RabbitVCS ---------- @@ -17,12 +16,15 @@ python-gobject >= 2.14 python-configobj >= 4.4.0 +For spell checking of commit messages: + python-gtkspell + For subversion: - python-svn >= 1.5.2 + python-svn >= 1.7.2 subversion >= 1.4.6 For git: - dulwich >= 0.6 + dulwich >= 0.6.1 git Recommends: diff -Nru rabbitvcs-0.15.0.5/clients/gedit/README rabbitvcs-0.15.2/clients/gedit/README --- rabbitvcs-0.15.0.5/clients/gedit/README 2010-01-29 14:24:58.000000000 +0000 +++ rabbitvcs-0.15.2/clients/gedit/README 2012-09-23 21:12:59.000000000 +0000 @@ -8,14 +8,24 @@ * gedit * (all other RabbitVCS requirements) -To install: +To install for Gedit 3: To install for all users, copy rabbitvcs-plugin.py and - rabbitvcs.gedit-plugin to: + rabbitvcs-gedit3.plugin to: + /usr/lib/gedit/plugins + + To install for a single user, copy rabbitvcs-plugin.py and + rabbitvcs-gedit3.plugin to: + ~/.local/share/gedit/plugins + +To install for Gedit 2: + To install for all users, copy rabbitvcs-plugin.py and + rabbitvcs-gedit2.gedit-plugin to: /usr/lib/gedit-2/plugins To install for a single user, copy rabbitvcs-plugin.py and - rabbitvcs.gedit-plugin to: - ~/.gnome2/gedit/plugins + rabbitvcs-gedit2.gedit-plugin to: + ~/.gnome2/gedit/plugins + Troubleshooting: diff -Nru rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs-gedit2.gedit-plugin rabbitvcs-0.15.2/clients/gedit/rabbitvcs-gedit2.gedit-plugin --- rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs-gedit2.gedit-plugin 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/gedit/rabbitvcs-gedit2.gedit-plugin 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,10 @@ +[Gedit Plugin] +Loader=python +Module=rabbitvcs-plugin +IAge=2 +Name=RabbitVCS +Description=RabbitVCS plugin for Gedit +Authors=Adam Plumb +Copyright=Copyright © 2011 Adam Plumb +Website=http://www.rabbitvcs.org + diff -Nru rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs-gedit3.plugin rabbitvcs-0.15.2/clients/gedit/rabbitvcs-gedit3.plugin --- rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs-gedit3.plugin 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/gedit/rabbitvcs-gedit3.plugin 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,9 @@ +[Plugin] +Loader=python +Module=rabbitvcs-plugin +IAge=3 +Name=RabbitVCS +Description=RabbitVCS plugin for Gedit +Authors=Adam Plumb +Copyright=Copyright © 2011 Adam Plumb +Website=http://www.rabbitvcs.org diff -Nru rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs-plugin.py rabbitvcs-0.15.2/clients/gedit/rabbitvcs-plugin.py --- rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs-plugin.py 2010-12-28 19:59:33.000000000 +0000 +++ rabbitvcs-0.15.2/clients/gedit/rabbitvcs-plugin.py 2012-09-23 21:12:59.000000000 +0000 @@ -2,7 +2,7 @@ # This is a Gedit plugin to allow for RabbitVCS integration in the Gedit # text editor. # -# Copyright (C) 2008-2008 by Adam Plumb +# Copyright (C) 2008-2011 by Adam Plumb # # RabbitVCS is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -21,8 +21,19 @@ from gettext import gettext as _ import os -import gtk -import gedit + +try: + from gi.repository import Gedit, GObject + from gi.repository import Gtk as gtk + os.environ["NAUTILUS_PYTHON_REQUIRE_GTK3"] = "1" + GTK3 = True +except ImportError: + import gedit + import gobject + import gtk + GTK3 = False + + import rabbitvcs.util.helper from rabbitvcs.vcs import create_vcs_instance @@ -327,8 +338,15 @@ manager = self._window.get_ui_manager() for menu_path in self._menu_paths: - widget = manager.get_widget(menu_path) - self._menubar_menu.update_action(widget.get_action()) + # Gtk3 changes how we access a widget's action. Get it from the + # UI Manager instead of the widget directly + if hasattr(manager, "get_action"): + action = manager.get_action(menu_path) + else: + widget = manager.get_widget(menu_path) + action = widget.get_action() + + self._menubar_menu.update_action(action) # Menu activate handlers def reload_settings(self, proc): @@ -337,49 +355,100 @@ def on_context_menu_command_finished(self): self.update_ui() -class RabbitVCSPlugin(gedit.Plugin): - def __init__(self): - gedit.Plugin.__init__(self) - self._instances = {} - self.id_name = "RabbitVCSContextMenuID" - - def activate(self, window): - self._instances[window] = RabbitVCSWindowHelper(self, window) - - handler_ids = [] - for signal in ('tab-added', 'tab-removed'): - method = getattr(self, 'on_window_' + signal.replace('-', '_')) - handler_ids.append(window.connect(signal, method)) - - window.set_data(self.id_name, handler_ids) - if window in self._instances: - for view in window.get_views(): - self._instances[window].connect_view(view, self.id_name) - - def deactivate(self, window): - widgets = [window] + window.get_views() - for widget in widgets: - handler_ids = widget.get_data(self.id_name) - if handler_ids is not None: - for handler_id in handler_ids: - widget.disconnect(handler_id) - widget.set_data(self.id_name, None) - - if window in self._instances: - self._instances[window].deactivate() - del self._instances[window] - - def update_ui(self, window): - if window in self._instances: - self._instances[window].update_ui() - - def on_window_tab_added(self, window, tab): - if window in self._instances: - self._instances[window].connect_view(tab.get_view(), self.id_name) - - def on_window_tab_removed(self, window, tab): - if window in self._instances: - self._instances[window].disconnect_view(tab.get_view(), self.id_name) +if GTK3: + class RabbitVCSGedit3Plugin(GObject.Object, Gedit.WindowActivatable): + __gtype_name__ = "RabbitVCSGedit3Plugin" + window = GObject.property(type=Gedit.Window) + + def __init__(self): + GObject.Object.__init__(self) + self._instances = {} + self.id_name = "RabbitVCSContextMenuID" + + def do_activate(self): + self._instances[self.window] = RabbitVCSWindowHelper(self, self.window) + + handler_ids = [] + for signal in ('tab-added', 'tab-removed'): + method = getattr(self, 'on_window_' + signal.replace('-', '_')) + handler_ids.append(self.window.connect(signal, method)) + + self.window.set_data(self.id_name, handler_ids) + if self.window in self._instances: + for view in self.window.get_views(): + self._instances[self.window].connect_view(view, self.id_name) + + def do_deactivate(self): + widgets = [self.window] + self.window.get_views() + for widget in widgets: + handler_ids = widget.get_data(self.id_name) + if handler_ids is not None: + for handler_id in handler_ids: + widget.disconnect(handler_id) + widget.set_data(self.id_name, None) + + if self.window in self._instances: + self._instances[self.window].deactivate() + del self._instances[self.window] + + def do_update_state(self): + self.update_ui() + + def update_ui(self): + if self.window in self._instances: + self._instances[self.window].update_ui() + + def on_window_tab_added(self, window, tab): + if self.window in self._instances: + self._instances[self.window].connect_view(tab.get_view(), self.id_name) + + def on_window_tab_removed(self, window, tab): + if window in self._instances: + self._instances[self.window].disconnect_view(tab.get_view(), self.id_name) +else: + class RabbitVCSGedit2Plugin(gedit.Plugin): + def __init__(self): + gedit.Plugin.__init__(self) + self._instances = {} + self.id_name = "RabbitVCSContextMenuID" + + def activate(self, window): + self._instances[window] = RabbitVCSWindowHelper(self, window) + + handler_ids = [] + for signal in ('tab-added', 'tab-removed'): + method = getattr(self, 'on_window_' + signal.replace('-', '_')) + handler_ids.append(window.connect(signal, method)) + + window.set_data(self.id_name, handler_ids) + if window in self._instances: + for view in window.get_views(): + self._instances[window].connect_view(view, self.id_name) + + def deactivate(self, window): + widgets = [window] + window.get_views() + for widget in widgets: + handler_ids = widget.get_data(self.id_name) + if handler_ids is not None: + for handler_id in handler_ids: + widget.disconnect(handler_id) + widget.set_data(self.id_name, None) + + if window in self._instances: + self._instances[window].deactivate() + del self._instances[window] + + def update_ui(self, window): + if window in self._instances: + self._instances[window].update_ui() + + def on_window_tab_added(self, window, tab): + if window in self._instances: + self._instances[window].connect_view(tab.get_view(), self.id_name) + + def on_window_tab_removed(self, window, tab): + if window in self._instances: + self._instances[window].disconnect_view(tab.get_view(), self.id_name) class MenuIgnoreByFilename(MenuItem): identifier = "RabbitVCS::Ignore_By_Filename" @@ -593,7 +662,10 @@ signal = "activate" def make_menu_item(self, item, id_magic): - return item.make_gtk_menu_item(id_magic) + if GTK3: + return item.make_gtk3_menu_item(id_magic) + else: + return item.make_gtk_menu_item(id_magic) def attach_submenu(self, menu_node, submenu_list): submenu = gtk.Menu() diff -Nru rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs.gedit-plugin rabbitvcs-0.15.2/clients/gedit/rabbitvcs.gedit-plugin --- rabbitvcs-0.15.0.5/clients/gedit/rabbitvcs.gedit-plugin 2010-01-25 18:44:23.000000000 +0000 +++ rabbitvcs-0.15.2/clients/gedit/rabbitvcs.gedit-plugin 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -[Gedit Plugin] -Loader=python -Module=rabbitvcs-plugin -IAge=2 -Name=RabbitVCS -Description=RabbitVCS plugin for Gedit -Authors=Adam Plumb -Copyright=Copyright © 2009 Adam Plumb -Website=http://www.rabbitvcs.org - diff -Nru rabbitvcs-0.15.0.5/clients/nautilus/RabbitVCS.py rabbitvcs-0.15.2/clients/nautilus/RabbitVCS.py --- rabbitvcs-0.15.0.5/clients/nautilus/RabbitVCS.py 2010-12-23 16:14:45.000000000 +0000 +++ rabbitvcs-0.15.2/clients/nautilus/RabbitVCS.py 2012-09-23 21:12:59.000000000 +0000 @@ -275,6 +275,7 @@ item.add_string_attribute(key, value) def update_status(self, item, path, status): + import rabbitvcs.ui if status.summary in rabbitvcs.ui.STATUS_EMBLEMS: item.add_emblem(rabbitvcs.ui.STATUS_EMBLEMS[status.summary]) diff -Nru rabbitvcs-0.15.0.5/clients/nautilus-3.0/RabbitVCS.py rabbitvcs-0.15.2/clients/nautilus-3.0/RabbitVCS.py --- rabbitvcs-0.15.0.5/clients/nautilus-3.0/RabbitVCS.py 2011-11-09 19:07:18.000000000 +0000 +++ rabbitvcs-0.15.2/clients/nautilus-3.0/RabbitVCS.py 2012-09-23 21:12:59.000000000 +0000 @@ -257,7 +257,7 @@ if not self.valid_uri(item.get_uri()): return Nautilus.OperationResult.FAILED - path = unicode(self.get_local_path(item.get_uri()), "utf-8") + path = rabbitvcs.util.helper.unquote_url(self.get_local_path(item.get_uri())) # log.debug("update_file_info() called for %s" % path) @@ -374,7 +374,7 @@ paths = [] for item in items: if self.valid_uri(item.get_uri()): - path = unicode(self.get_local_path(item.get_uri()), "utf-8") + path = rabbitvcs.util.helper.unquote_url(self.get_local_path(item.get_uri())) paths.append(path) self.nautilusVFSFile_table[path] = item @@ -402,7 +402,7 @@ paths = [] for item in items: if self.valid_uri(item.get_uri()): - path = unicode(self.get_local_path(item.get_uri()), "utf-8") + path = rabbitvcs.util.helper.unquote_url(self.get_local_path(item.get_uri())) paths.append(path) self.nautilusVFSFile_table[path] = item @@ -454,7 +454,7 @@ """ if not self.valid_uri(item.get_uri()): return - path = unicode(self.get_local_path(item.get_uri()), "utf-8") + path = rabbitvcs.util.helper.unquote_url(self.get_local_path(item.get_uri())) self.nautilusVFSFile_table[path] = item # log.debug("get_background_items_full() called") @@ -477,7 +477,7 @@ def get_background_items(self, window, item): if not self.valid_uri(item.get_uri()): return - path = unicode(self.get_local_path(item.get_uri()), "utf-8") + path = rabbitvcs.util.helper.unquote_url(self.get_local_path(item.get_uri())) self.nautilusVFSFile_table[path] = item # log.debug("get_background_items() called") @@ -613,7 +613,7 @@ for item in items: if self.valid_uri(item.get_uri()): - path = unicode(self.get_local_path(item.get_uri()), "utf-8") + path = rabbitvcs.util.helper.unquote_url(self.get_local_path(item.get_uri())) if self.vcs_client.is_in_a_or_a_working_copy(path): paths.append(path) diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Add.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Add.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Add.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Add.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Add + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Add.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Add.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Add.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Add.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Add.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Add.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx add "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + AFE7E851-18EF-4A7D-8B08-8F9C64823033 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + 8D14C1FA-264D-4E60-99AF-82B291989742 + UUID + 7477CE01-28C1-4749-9A53-8D6F445B5ECD + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Annotate.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Annotate.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Annotate.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Annotate.workflow/Contents/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Annotate + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Annotate.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Annotate.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Annotate.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Annotate.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Annotate.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Annotate.workflow/Contents/document.wflow 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx annotate --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 7B0D7627-FCF6-4B19-8E80-E78B97E72B6C + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + 89C40097-B2EF-40B4-AF00-209D547885FE + UUID + D9F8C5A0-2CF6-44AD-BB94-8F63EDF48639 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Branch.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Branch.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Branch.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Branch.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Branch + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Branch.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Branch.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Branch.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Branch.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Branch.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Branch.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx branch --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{148, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Browse Repository + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Browse Repository.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx browser "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Check for modifications + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Check for modifications.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx checkmods "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 7B0D7627-FCF6-4B19-8E80-E78B97E72B6C + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + 89C40097-B2EF-40B4-AF00-209D547885FE + UUID + D9F8C5A0-2CF6-44AD-BB94-8F63EDF48639 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Checkout....workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Checkout....workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Checkout....workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Checkout....workflow/Contents/Info.plist 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Checkout... + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.folder + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Checkout....workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Checkout....workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Checkout....workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Checkout....workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Checkout....workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Checkout....workflow/Contents/document.wflow 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx checkout --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2A9C48DC-3E17-49D6-9924-6FD98175AB1E + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + 190C7D90-6230-47FD-8502-890175C77BC2 + UUID + 3AFBA913-B332-4E21-8226-03E51F39CDDF + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject.folder + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Commit....workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Commit....workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Commit....workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Commit....workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Commit... + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Commit....workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Commit....workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Commit....workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Commit....workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Commit....workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Commit....workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx commit "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{105, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Delete.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Delete.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Delete.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Delete.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Delete + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Delete.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Delete.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Delete.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Delete.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Delete.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Delete.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx delete "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{10, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Diff (Side by side view) + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff (Side by side view).workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx diff --vcs=svn -s "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{148, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff.workflow/Contents/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Diff + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Diff.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Diff.workflow/Contents/document.wflow 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx diff --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{148, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Export....workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Export....workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Export....workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Export....workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Export... + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Export....workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Export....workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Export....workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Export....workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Export....workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Export....workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx export --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{10, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Ignore.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Ignore.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Ignore.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Ignore.workflow/Contents/Info.plist 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Ignore + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Ignore.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Ignore.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Ignore.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Ignore.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Ignore.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Ignore.workflow/Contents/document.wflow 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx ignore "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Log.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Log.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Log.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Log.workflow/Contents/Info.plist 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Log + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Log.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Log.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Log.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Log.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Log.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Log.workflow/Contents/document.wflow 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx log --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{170, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Mark Resolved + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Mark Resolved.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx markresolved "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{209, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Merge....workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Merge....workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Merge....workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Merge....workflow/Contents/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Merge... + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Merge....workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Merge....workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Merge....workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Merge....workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Merge....workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Merge....workflow/Contents/document.wflow 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx merge --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{188, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Properties.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Properties.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Properties.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Properties.workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Properties + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Properties.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Properties.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Properties.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Properties.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Properties.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Properties.workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx properties "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.000000:353.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 446.000000, NO + 0.000000, 447.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 446.000000, NO + 164.000000, 0.000000, 217.000000, 446.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 599.000000, NO + 382.000000, 0.000000, 618.000000, 599.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 618.000000, 408.000000, NO + 0.000000, 418.000000, 618.000000, 162.000000, NO + + + windowFrame + {{167, 102}, {999, 676}} + workflowViewScrollPosition + {{0, 0}, {618, 408}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Rename.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Rename.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Rename.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Rename.workflow/Contents/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Rename + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Rename.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Rename.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Rename.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Rename.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Rename.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Rename.workflow/Contents/document.wflow 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx rename "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Revert.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Revert.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Revert.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Revert.workflow/Contents/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Revert + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Revert.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Revert.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Revert.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Revert.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Revert.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Revert.workflow/Contents/document.wflow 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx revert "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{170, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Switch....workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Switch....workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Switch....workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Switch....workflow/Contents/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Switch... + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Switch....workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Switch....workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Switch....workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Switch....workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Switch....workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Switch....workflow/Contents/document.wflow 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx switch "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update to....workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update to....workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update to....workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update to....workflow/Contents/Info.plist 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Update to... + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.item + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update to....workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update to....workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update to....workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update to....workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update to....workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update to....workflow/Contents/document.wflow 2012-09-23 21:12:58.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx updateto --vcs=svn "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 2F01885A-5924-4602-9D34-AAD298520867 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B27AE539-FF4D-4DBF-B8E2-8886B412CA83 + UUID + 9AAD48A9-A2C5-4613-89E1-E052F8BDF569 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{212, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update.workflow/Contents/Info.plist rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update.workflow/Contents/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update.workflow/Contents/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update.workflow/Contents/Info.plist 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + NSServices + + + NSMenuItem + + default + SVN Update + + NSMessage + runWorkflowAsService + NSRequiredContext + + NSApplicationIdentifier + com.apple.finder + + NSSendFileTypes + + public.folder + + + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update.workflow/Contents/QuickLook/Thumbnail.png and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update.workflow/Contents/QuickLook/Thumbnail.png differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update.workflow/Contents/document.wflow rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update.workflow/Contents/document.wflow --- rabbitvcs-0.15.0.5/clients/osx_finder/services/SVN Update.workflow/Contents/document.wflow 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/services/SVN Update.workflow/Contents/document.wflow 2012-09-23 21:12:57.000000000 +0000 @@ -0,0 +1,271 @@ + + + + + AMApplicationBuild + 247.1 + AMApplicationVersion + 2.1.1 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.1 + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + /opt/rabbit/bin/rabbitvcs_osx update "$*" + CheckedForUserDefaultShell + + inputMethod + 1 + shell + /bin/bash + source + + + Application + + Automator + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.1 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + E86D82B3-74F9-4154-872D-EB71C690C797 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + 7A324629-564E-4136-8E09-4D176E5C2B40 + UUID + F1B87754-8CCE-4BE7-8A0E-3A27D10AF24C + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 309.500000:382.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib + + isViewVisible + + + + connectors + + state + + AMLogTabViewSelectedIndex + 0 + libraryState + + actionsMajorSplitViewState + + expandedPosition + 108 + subviewState + + 0.000000, 0.000000, 381.000000, 475.000000, NO + 0.000000, 476.000000, 381.000000, 107.000000, NO + + + actionsMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 475.000000, NO + 164.000000, 0.000000, 217.000000, 475.000000, NO + + + variablesMajorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 350.000000, 555.000000, NO + 0.000000, 556.000000, 350.000000, 148.000000, NO + + + variablesMinorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 163.000000, 555.000000, NO + 164.000000, 0.000000, 186.000000, 555.000000, NO + + + + majorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 381.000000, 628.000000, NO + 382.000000, 0.000000, 619.000000, 628.000000, NO + + + minorSplitViewState + + expandedPosition + 0.0 + subviewState + + 0.000000, 0.000000, 619.000000, 437.000000, NO + 0.000000, 447.000000, 619.000000, 162.000000, NO + + + windowFrame + {{191, 73}, {1000, 705}} + workflowViewScrollPosition + {{0, 0}, {619, 437}} + + workflowMetaData + + serviceApplicationBundleID + com.apple.finder + serviceApplicationPath + /System/Library/CoreServices/Finder.app + serviceInputTypeIdentifier + com.apple.Automator.fileSystemObject.folder + serviceOutputTypeIdentifier + com.apple.Automator.nothing + workflowTypeIdentifier + com.apple.Automator.servicesMenu + + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/English.lproj/InfoPlist.strings and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/English.lproj/InfoPlist.strings differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/English.lproj/MainMenu.xib rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/English.lproj/MainMenu.xib --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/English.lproj/MainMenu.xib 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/English.lproj/MainMenu.xib 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,3034 @@ + + + + 1050 + 9D29 + 664 + 949.33 + 352.00 + + YES + + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + NewApplication + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + UHJlZmVyZW5jZXPigKY + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + T3BlbuKApg + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + U2F2ZSBBc+KApg + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + UHJpbnTigKY + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + RmluZOKApg + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + U2hvdyBTcGVsbGluZ+KApg + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Q3VzdG9taXplIFRvb2xiYXLigKY + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + Help + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + 15 + 2 + {{335, 390}, {480, 360}} + 1946157056 + Window + NSWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + {480, 360} + + + {{0, 0}, {1440, 878}} + {3.40282e+38, 3.40282e+38} + + + NSFontManager + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + showHelp: + + + + 360 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + addFontTrait: + + + + 421 + + + + addFontTrait: + + + + 422 + + + + modifyFont: + + + + 423 + + + + orderFrontFontPanel: + + + + 424 + + + + modifyFont: + + + + 425 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + alignLeft: + + + + 442 + + + + alignJustified: + + + + 443 + + + + copyRuler: + + + + 444 + + + + alignCenter: + + + + 445 + + + + toggleRuler: + + + + 446 + + + + alignRight: + + + + 447 + + + + pasteRuler: + + + + 448 + + + + terminate: + + + + 449 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 103 + + + YES + + + + 1 + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 75 + + + 3 + + + 80 + + + 8 + + + 78 + + + 6 + + + 72 + + + + + 82 + + + 9 + + + 124 + + + YES + + + + + + 77 + + + 5 + + + 73 + + + 1 + + + 79 + + + 7 + + + 112 + + + 10 + + + 74 + + + 2 + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 106 + + + YES + + + + 2 + + + 111 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + 1111 + + + 144 + + + + + 129 + + + 121 + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + + + 375 + + + YES + + + + + + 376 + + + YES + + + + + + + 377 + + + YES + + + + + + 378 + + + YES + + + + + + 379 + + + YES + + + + + + + + + + + + + 380 + + + + + 381 + + + + + 382 + + + + + 383 + + + + + 384 + + + + + 385 + + + + + 386 + + + + + 387 + + + + + 388 + + + YES + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + YES + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + YES + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 103.IBPluginDependency + 103.ImportedFromIB2 + 106.IBPluginDependency + 106.ImportedFromIB2 + 106.editorWindowContentRectSynchronizationRect + 111.IBPluginDependency + 111.ImportedFromIB2 + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 125.editorWindowContentRectSynchronizationRect + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 195.IBPluginDependency + 195.ImportedFromIB2 + 196.IBPluginDependency + 196.ImportedFromIB2 + 197.IBPluginDependency + 197.ImportedFromIB2 + 198.IBPluginDependency + 198.ImportedFromIB2 + 199.IBPluginDependency + 199.ImportedFromIB2 + 200.IBPluginDependency + 200.ImportedFromIB2 + 200.editorWindowContentRectSynchronizationRect + 201.IBPluginDependency + 201.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 203.IBPluginDependency + 203.ImportedFromIB2 + 204.IBPluginDependency + 204.ImportedFromIB2 + 205.IBPluginDependency + 205.ImportedFromIB2 + 205.editorWindowContentRectSynchronizationRect + 206.IBPluginDependency + 206.ImportedFromIB2 + 207.IBPluginDependency + 207.ImportedFromIB2 + 208.IBPluginDependency + 208.ImportedFromIB2 + 209.IBPluginDependency + 209.ImportedFromIB2 + 210.IBPluginDependency + 210.ImportedFromIB2 + 211.IBPluginDependency + 211.ImportedFromIB2 + 212.IBPluginDependency + 212.ImportedFromIB2 + 212.editorWindowContentRectSynchronizationRect + 213.IBPluginDependency + 213.ImportedFromIB2 + 214.IBPluginDependency + 214.ImportedFromIB2 + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 217.IBPluginDependency + 217.ImportedFromIB2 + 218.IBPluginDependency + 218.ImportedFromIB2 + 219.IBPluginDependency + 219.ImportedFromIB2 + 220.IBPluginDependency + 220.ImportedFromIB2 + 220.editorWindowContentRectSynchronizationRect + 221.IBPluginDependency + 221.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 295.IBPluginDependency + 296.IBPluginDependency + 296.editorWindowContentRectSynchronizationRect + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 346.ImportedFromIB2 + 348.IBPluginDependency + 348.ImportedFromIB2 + 349.IBPluginDependency + 349.ImportedFromIB2 + 349.editorWindowContentRectSynchronizationRect + 350.IBPluginDependency + 350.ImportedFromIB2 + 351.IBPluginDependency + 351.ImportedFromIB2 + 354.IBPluginDependency + 354.ImportedFromIB2 + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.maxSize + 372.IBPluginDependency + 375.IBPluginDependency + 376.IBEditorWindowLastContentRect + 376.IBPluginDependency + 377.IBPluginDependency + 378.IBPluginDependency + 379.IBPluginDependency + 380.IBPluginDependency + 381.IBPluginDependency + 382.IBPluginDependency + 383.IBPluginDependency + 384.IBPluginDependency + 385.IBPluginDependency + 386.IBPluginDependency + 387.IBPluginDependency + 388.IBEditorWindowLastContentRect + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 393.IBPluginDependency + 394.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 412.IBPluginDependency + 413.IBPluginDependency + 414.IBPluginDependency + 415.IBPluginDependency + 416.IBPluginDependency + 417.IBPluginDependency + 418.IBPluginDependency + 419.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 81.editorWindowContentRectSynchronizationRect + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{596, 852}, {216, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{522, 812}, {146, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {275, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{187, 434}, {243, 243}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {167, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {241, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + {{207, 285}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{475, 832}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {215, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{335, 390}, {480, 360}} + com.apple.InterfaceBuilder.CocoaPlugin + {{335, 390}, {480, 360}} + + {{33, 99}, {480, 360}} + {3.40282e+38, 3.40282e+38} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{437, 242}, {86, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{523, 2}, {178, 283}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{219, 102}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 474}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 449 + + + 0 + + 3 + + diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/Info.plist rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/Info.plist --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/Info.plist 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + schelper.icns + CFBundleIdentifier + org.tigris.scplugin.${PRODUCT_NAME:identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSUIElement + 1 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/SCToolbarButton.xcodeproj/TemplateIcon.icns and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/SCToolbarButton.xcodeproj/TemplateIcon.icns differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/SCToolbarButton.xcodeproj/project.pbxproj rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/SCToolbarButton.xcodeproj/project.pbxproj --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/SCToolbarButton.xcodeproj/project.pbxproj 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/SCToolbarButton.xcodeproj/project.pbxproj 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,322 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + 9524E8930FFE6F7000C8E021 /* schelper.icns in Resources */ = {isa = PBXBuildFile; fileRef = 9524E8920FFE6F7000C8E021 /* schelper.icns */; }; + 952D6E5F100EBA3B009C260F /* fileListBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 952D6E5E100EBA3B009C260F /* fileListBuilder.m */; }; + 954F9AB4100C0D5100109F93 /* sendmsg.m in Sources */ = {isa = PBXBuildFile; fileRef = 954F9AB3100C0D5100109F93 /* sendmsg.m */; }; + 954F9AE6100C10E200109F93 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 954F9AE5100C10E200109F93 /* Carbon.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; + 28639AB71016873500EC00E2 /* SCToolbarButton_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCToolbarButton_Prefix.pch; sourceTree = ""; }; + 28F43C4D1117C89700B7C973 /* menuitems.strings */ = {isa = PBXFileReference; fileEncoding = 2415919360; lastKnownFileType = text.plist.strings; lineEnding = 0; path = menuitems.strings; sourceTree = ""; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* RabbitToolbarButton.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RabbitToolbarButton.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9524E8920FFE6F7000C8E021 /* schelper.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = schelper.icns; sourceTree = ""; }; + 952D6E5D100EBA3B009C260F /* fileListBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fileListBuilder.h; sourceTree = ""; }; + 952D6E5E100EBA3B009C260F /* fileListBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = fileListBuilder.m; sourceTree = ""; }; + 954F9AB2100C0D5100109F93 /* sendmsg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sendmsg.h; sourceTree = ""; }; + 954F9AB3100C0D5100109F93 /* sendmsg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = sendmsg.m; sourceTree = ""; }; + 954F9AE5100C10E200109F93 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + 954F9AE6100C10E200109F93 /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + ); + name = Classes; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* RabbitToolbarButton.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CocoPopUp */ = { + isa = PBXGroup; + children = ( + 954F9AE5100C10E200109F93 /* Carbon.framework */, + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CocoPopUp; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 28639AB71016873500EC00E2 /* SCToolbarButton_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + 954F9AB3100C0D5100109F93 /* sendmsg.m */, + 954F9AB2100C0D5100109F93 /* sendmsg.h */, + 952D6E5E100EBA3B009C260F /* fileListBuilder.m */, + 952D6E5D100EBA3B009C260F /* fileListBuilder.h */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 9524E8920FFE6F7000C8E021 /* schelper.icns */, + 8D1107310486CEB800E47090 /* Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, + 28F43C4D1117C89700B7C973 /* menuitems.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* SCToolbarButton */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SCToolbarButton" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SCToolbarButton; + productInstallPath = "$(HOME)/Applications"; + productName = CocoPopUp; + productReference = 8D1107320486CEB800E47090 /* RabbitToolbarButton.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SCToolbarButton" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* CocoPopUp */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* SCToolbarButton */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, + 9524E8930FFE6F7000C8E021 /* schelper.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072D0486CEB800E47090 /* main.m in Sources */, + 954F9AB4100C0D5100109F93 /* sendmsg.m in Sources */, + 952D6E5F100EBA3B009C260F /* fileListBuilder.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 1DDD58150DA1D0A300B32029 /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_GC = required; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = SCToolbarButton_Prefix.pch; + GCC_VERSION = 4.0; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.5; + PRODUCT_NAME = RabbitToolbarButton; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_OBJC_GC = required; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = SCToolbarButton_Prefix.pch; + GCC_VERSION = 4.0; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.5; + PRODUCT_NAME = RabbitToolbarButton; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + i386, + ppc, + ); + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = DEBUG; + GCC_VERSION = 4.0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.3; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = YES; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + i386, + ppc, + ); + GCC_C_LANGUAGE_STANDARD = c99; + GCC_VERSION = 4.0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.3; + PREBINDING = YES; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SCToolbarButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SCToolbarButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/SCToolbarButton_Prefix.pch rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/SCToolbarButton_Prefix.pch --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/SCToolbarButton_Prefix.pch 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/SCToolbarButton_Prefix.pch 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'CocoPopUp' target in the 'CocoPopUp' project +// + +#ifdef __OBJC__ + #import +#endif diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/fileListBuilder.h rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/fileListBuilder.h --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/fileListBuilder.h 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/fileListBuilder.h 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,11 @@ +// +// fileListBuilder.h +// CocoPopUp +// +// Created by mmg on 15/07/09. +// Copyright 2009 __MyCompanyName__. All rights reserved. +// + +#import + +NSArray* getSelectedFilesList(BOOL* containsFolders, BOOL* containsFiles); diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/fileListBuilder.m rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/fileListBuilder.m --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/fileListBuilder.m 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/fileListBuilder.m 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,97 @@ +#import "fileListBuilder.h" + +// Applescript to get what is currently selected in the Finder +static const char* appleScript = +"property stdout : \"\"\n" + +"tell application \"Finder\"\n" + + "copy selection to selectedItems\n" + "set stdout to \"\"\n" + + "if ((count of selectedItems) > 0) then\n" + "repeat with x in selectedItems\n" + "set itemN to (POSIX path of (x as alias))\n" + "set stdout to stdout & itemN & \"\n" + "\"\n" + "end repeat\n" + "else\n" + "set theWindow to window 1\n" + "set thePath to (POSIX path of (target of theWindow as alias))\n" + "set stdout to thePath\n" + "end if\n" + + "stdout\n" + +"end tell"; + +NSAppleScript* scriptObject = nil; + +void compileScript() +{ + NSDictionary* errorDict; + + scriptObject = [[NSAppleScript alloc] initWithSource: + [NSString stringWithUTF8String:appleScript]]; + + if(![scriptObject compileAndReturnError: &errorDict]) + { + fprintf(stderr, "Failed to compile appleScript!\n"); + scriptObject = nil; + } + +} + +NSArray* getSelectedFilesList(BOOL* containsFolders, BOOL* containsFiles) +{ + //printf("Running script : \n %s", appleScript); + + NSAppleEventDescriptor* returnDescriptor = NULL; + NSDictionary* errorDict; + + if (scriptObject == nil) + { + compileScript(); + if (scriptObject == nil) return nil; + } + + returnDescriptor = [scriptObject executeAndReturnError: &errorDict]; + + if (returnDescriptor != nil) + { + NSString* returnedValue = [returnDescriptor stringValue]; + NSArray* selectedFiles = [returnedValue componentsSeparatedByString:@"\n"]; + NSFileManager* fileManager = [NSFileManager defaultManager]; + + NSMutableArray* cleanedUpList = [[NSMutableArray alloc] initWithCapacity:[selectedFiles count]]; + for (NSString* curr in selectedFiles) + { + if ([curr length] > 0) + { + [cleanedUpList addObject:curr]; + BOOL isFolder = NO; + if ([fileManager fileExistsAtPath:curr isDirectory:&isFolder]) + { + if (isFolder) *containsFolders = YES; + else *containsFiles = YES; + } + + } + } + + NSLog(@"[fileListBuilder] %i selected files\n", [cleanedUpList count] ); + for (NSString* curr in cleanedUpList) + { + NSLog(@" - %@\n", curr); + } + + return cleanedUpList; + } + else + { + printf("Applescript Execution failed!\n"); + NSLog([returnDescriptor stringValue]); + NSLog([errorDict description]); + return nil; + } +} diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/main.m rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/main.m --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/main.m 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/main.m 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,460 @@ + +#import +#import "fileListBuilder.h" +#import "sendmsg.h" + + +// ------------------------------------------------------------------- +// +// MyMenu +// +// Creates and manages the menu display. +// +// Interface +// ------------------------------------------------------------------- +@interface MyMenu : NSObject +{ + NSMenu* menu; + + NSMutableArray* menuItems; + NSArray* selectedFiles; + + BOOL containsFolders; + BOOL containsFiles; + + int selection; +} +-(id) init; + +-(NSMutableArray*)menuItems; +-(void)setMenuItems:(NSMutableArray*)newMenuItems; + +-(NSArray*)selectedFiles; +-(void)setSelectedFiles:(NSArray *)newSelectedFiles; + +- (void) fillMenu; +-(void) addItem:(NSString*) name withIcon:(NSImage*) image andId:(enum MenuItems)menutag; + +-(void)dealloc; + +-(void)menu:(NSMenu *)shownMenu willHighlightItem:(NSMenuItem *)item; +-(void)menuDidClose:(NSMenu *)menu; + +@end + + +NSImage* imageAdd; +NSImage* imageAnnotate; +NSImage* imageBranch; +NSImage* imageCheckmods; +NSImage* imageCheckout; +NSImage* imageCleanup; +NSImage* imageCommit; +NSImage* imageDelete; +NSImage* imageDiff; +NSImage* imageExport; +NSImage* imageIgnore; +NSImage* imageLock; +NSImage* imageLog; +NSImage* imageMerge; +NSImage* imagePatchCreate; +NSImage* imagePatchApply; +NSImage* imageProperties; +NSImage* imageRelocate; +NSImage* imageRepobrowser; +NSImage* imageRename; +NSImage* imageResolve; +NSImage* imageRevert; +NSImage* imageSettings; +NSImage* imageSwitch; +NSImage* imageUnlock; +NSImage* imageUpdate; + +// ------------------------------------------------------------------- +// +// MyMenu +// +// Creates and manages the menu display. +// +// Implementation +// ------------------------------------------------------------------- +@implementation MyMenu + +// ------------------------------------------------------------------- +// +// menu:willHighlightItem: +// +// Returns index of requested menu item (or -1, if not in menu) +// +// ------------------------------------------------------------------- +- (void)menu:(NSMenu *)shownMenu willHighlightItem:(NSMenuItem *)item +{ + selection = -1; + int amount = [menuItems count]; + for(int i=0; i= 0) { + // Ordinary commands invoked by selection number + sendCommand(selectedFiles, selection); + } + // else, clicked outside menu, hit escape, or like that + */ + + //[[NSApplication sharedApplication] terminate: nil]; // Never returns +} + +-(void) addItem:(NSString*) name withIcon:(NSImage*) image andId:(enum MenuItems)menutag +{ + NSMenuItem* item = [menu addItemWithTitle:NSLocalizedStringFromTable(name, @"menuitems", nil) action:nil keyEquivalent:@""]; + [item setEnabled:YES]; + [item setImage:image]; + [item setTag:menutag]; + [menuItems addObject:item]; +} + +// ------------------------------------------------------------------- +// +// fillMenu +// +// Populates the menu with known Subversion commands +// +// ------------------------------------------------------------------- +- (void) fillMenu +{ + NSString* title = [[NSString alloc] initWithCString:"My Menu" encoding:NSUTF8StringEncoding]; + menu = [[NSMenu alloc] initWithTitle:title]; + + [self addItem:@"Add" withIcon:imageAdd andId:ADD]; + + if (containsFiles && !containsFolders) + { + [self addItem:@"Annotate" withIcon:imageAnnotate andId:ANNOTATE]; + } + + [self addItem:@"Check for modifications" withIcon:imageCheckmods andId:CHECK_FOR_MODS]; + + if (containsFolders && !containsFiles) + { + [self addItem:@"Checkout" withIcon:imageCheckout andId:CHECKOUT]; + [self addItem:@"Cleanup" withIcon:imageCleanup andId:CLEANUP]; + } + [self addItem:@"Commit" withIcon:imageCommit andId:COMMIT]; + [self addItem:@"Delete" withIcon:imageDelete andId:DELETE]; + [self addItem:@"Export" withIcon:imageExport andId:EXPORT]; + [self addItem:@"Diff against base (raw)" withIcon:imageDiff andId:DIFF_RAW]; + [self addItem:@"Diff against base (side by side)" withIcon:imageDiff andId:DIFF_GUI]; + //[self addItem:@"Ignore" withIcon:imageIgnore andId:IGNORE]; + [self addItem:@"Log" withIcon:imageLog andId:LOG]; + [self addItem:@"Mark Resolved" withIcon:imageResolve andId:MARK_RESOLVED]; + [self addItem:@"Properties" withIcon:imageProperties andId:PROPERTIES]; + [self addItem:@"Revert" withIcon:imageRevert andId:REVERT]; + [self addItem:@"Rename" withIcon:imageRename andId:RENAME]; + [self addItem:@"Update" withIcon:imageUpdate andId:UPDATE]; + [self addItem:@"Update to revision..." withIcon:imageUpdate andId:UPDATE_TO]; + + if (containsFolders && !containsFiles) + { + [menu addItem:[NSMenuItem separatorItem]]; + [self addItem:@"Branch/Tag" withIcon:imageBranch andId:BRANCH]; + [self addItem:@"Merge" withIcon:imageMerge andId:MERGE]; + [self addItem:@"Relocate" withIcon:imageRelocate andId:RELOCATE]; + [self addItem:@"Repository Browser" withIcon:imageRepobrowser andId:REPO_BROWSER]; + [self addItem:@"Switch" withIcon:imageSwitch andId:SWITCH]; + } + + [menu addItem:[NSMenuItem separatorItem]]; + + [self addItem:@"Lock" withIcon:imageLock andId:LOCK]; + [self addItem:@"Unlock" withIcon:imageUnlock andId:UNLOCK]; + [menu addItem:[NSMenuItem separatorItem]]; + + [self addItem:@"Create Patch" withIcon:imagePatchCreate andId:CREATE_PATCH]; + [self addItem:@"Apply Patch" withIcon:imagePatchApply andId:APPLY_PATCH]; + [menu addItem:[NSMenuItem separatorItem]]; + + [self addItem:@"Settings" withIcon:imageSettings andId:SETTINGS]; + [self addItem:@"About" withIcon:nil andId:ABOUT]; + + [menu setAutoenablesItems:NO]; + [menu setDelegate:self]; + [menu sizeToFit]; +} + + +// ------------------------------------------------------------------- +// +// init +// +// Initializes and posts the menu +// +// ------------------------------------------------------------------- +-(id) init +{ + self = [super init]; + + if (self) + { + [self setMenuItems:[[NSMutableArray alloc] init]]; + + containsFolders = NO; + containsFiles = NO; + [self setSelectedFiles:getSelectedFilesList(&containsFolders, &containsFiles)]; + + if ([self selectedFiles] == nil) + { + fprintf(stderr, "Getting list of files failed"); + // FIXME : report something to user + exit(1); + } + + selection = -1; + + BOOL pullsDown = NO; + + NSPoint mouseLoc = [NSEvent mouseLocation]; +#if DEBUG + NSLog(@"Mouse base location is (%g, %g)", mouseLoc.x, mouseLoc.y); +#endif + + NSEnumerator *screenEnum =[[NSScreen screens] objectEnumerator]; + NSScreen *screen; + while ((screen = [screenEnum nextObject]) && !NSMouseInRect(mouseLoc, [screen frame], NO)); +#if DEBUG + NSLog(@"screen base frame is (%g, %g) + (%g, %g)", + [screen frame].origin.x, [screen frame].origin.y, + [screen frame].size.width, [screen frame].size.height); +#endif + + NSPoint menuLoc; + menuLoc.x = mouseLoc.x - [screen frame].origin.x; + menuLoc.y = mouseLoc.y - [screen frame].origin.y; +#if DEBUG + NSLog(@"desired menu screen location is (%g, %g)", menuLoc.x, menuLoc.y); +#endif + + //---- + NSWindow *hiddenWindow = [[NSWindow alloc] + initWithContentRect:NSMakeRect( menuLoc.x, menuLoc.y, 5, 5 ) + styleMask: NSTitledWindowMask | NSClosableWindowMask + backing:NSBackingStoreNonretained + defer:NO + screen:screen]; + [hiddenWindow setFrameOrigin:mouseLoc]; // dunno why this is needed, but some screen arrangements misposition without +#if DEBUG + NSLog(@"hidden window base location: %g %g", [hiddenWindow frame].origin.x, [hiddenWindow frame].origin.y); + NSLog(@"hidden window screen location: %g %g", + [hiddenWindow frame].origin.x - [screen frame].origin.x, + [hiddenWindow frame].origin.y - [screen frame].origin.y + ); +#endif + + //---- + + NSRect rect; + rect.origin.x = 0; + rect.origin.y = 0; + rect.size.width = 1000; + rect.size.height = 500; + + NSView* view = [[NSView alloc] initWithFrame:rect]; + [[hiddenWindow contentView] addSubview:view]; + + [self fillMenu]; + + NSRect menuFrame; + menuFrame.origin.x = 0.0; + menuFrame.origin.y = 0.0; + menuFrame.size.width = 100; + menuFrame.size.height = 0.0; + + NSPopUpButtonCell *popUpButtonCell = [[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:pullsDown]; + [popUpButtonCell setMenu:menu]; + if (!pullsDown) [popUpButtonCell selectItem:nil]; + + [popUpButtonCell performClickWithFrame:menuFrame inView:view]; // Never returns + + } + return self; +} + +// ------------------------------------------------------------------- +// +// menuItems +// +// Accessor +// +// ------------------------------------------------------------------- +-(NSMutableArray*)menuItems +{ + return menuItems; +} + +// ------------------------------------------------------------------- +// +// setMenuItems: +// +// Accessor +// +// ------------------------------------------------------------------- +-(void)setMenuItems:(NSMutableArray*)newMenuItems +{ + menuItems = newMenuItems; +} + +// ------------------------------------------------------------------- +// +// selectedFiles +// +// Accessor +// +// ------------------------------------------------------------------- +- (NSArray*) selectedFiles +{ + return selectedFiles; +} + +// ------------------------------------------------------------------- +// +// setSelectedFiles: +// +// Accessor +// +// ------------------------------------------------------------------- +-(void)setSelectedFiles:(NSArray*)newSelectedFiles +{ + selectedFiles = newSelectedFiles; +} + +// ------------------------------------------------------------------- +// +// dealloc +// +// ------------------------------------------------------------------- +-(void)dealloc +{ + [self setMenuItems:nil]; + [self setSelectedFiles:nil]; + [super dealloc]; +} + + +@end + +// ------------------------------------------------------------------- +@interface MyAppDelegate : NSObject +{ +} +- (void) applicationDidFinishLaunching:(NSNotification*) notice ; +- (void) applicationDidBecomeActive:(NSNotification *)notif; +@end + +// ------------------------------------------------------------------- +@implementation MyAppDelegate +- (void) applicationDidFinishLaunching:(NSNotification*) notice +{ + // DEBUG printf("inside appdidfinishlaunching\n") ; + [[MyMenu alloc] init]; // Never returns +} +- (void) applicationDidBecomeActive:(NSNotification *)notif +{ + [[MyMenu alloc] init]; // Never returns +} +@end + +// ------------------------------------------------------------------- +#pragma mark main() + +NSImage* loadImage(NSString* name) +{ + NSString * path = [[NSBundle mainBundle] pathForResource:name ofType:@"png"]; + return [[NSImage alloc] initByReferencingFile:path]; +} + +int main(int argc, char *argv[]) +{ + // TODO : determine which actions are possible + + MyAppDelegate* delegate = [[MyAppDelegate alloc] init]; + + NSApplication* app = [NSApplication sharedApplication]; + + [app setDelegate:delegate]; + + imageAdd = loadImage(@"rabbitvcs-add"); + imageAnnotate = loadImage(@"rabbitvcs-annotate"); + imageBranch = loadImage(@"rabbitvcs-branch"); + imageCheckmods = loadImage(@"rabbitvcs-checkmods"); + imageCheckout = loadImage(@"rabbitvcs-checkout"); + imageCleanup = loadImage(@"rabbitvcs-cleanup"); + imageCommit = loadImage(@"rabbitvcs-commit"); + imageDelete = loadImage(@"rabbitvcs-delete"); + imageDiff = loadImage(@"rabbitvcs-diff"); + imageExport = loadImage(@"rabbitvcs-export"); + //imageIgnore = loadImage(@"rabbitvcs-ignore"); + imageLock = loadImage(@"rabbitvcs-lock"); + imageLog = loadImage(@"rabbitvcs-show_log"); + imageMerge = loadImage(@"rabbitvcs-merge"); + imagePatchCreate = loadImage(@"rabbitvcs-createpatch"); + imagePatchApply = loadImage(@"rabbitvcs-applypatch"); + imageProperties = loadImage(@"rabbitvcs-properties"); + imageRelocate = loadImage(@"rabbitvcs-relocate"); + imageRepobrowser = loadImage(@"rabbitvcs-repobrowser"); + imageRename = loadImage(@"rabbitvcs-rename"); + imageResolve = loadImage(@"rabbitvcs-resolve"); + imageRevert = loadImage(@"rabbitvcs-revert"); + imageSettings = loadImage(@"rabbitvcs-settings"); + imageSwitch = loadImage(@"rabbitvcs-switch"); + imageUnlock = loadImage(@"rabbitvcs-unlock"); + imageUpdate = loadImage(@"rabbitvcs-update"); + + [NSApp run]; // Never returns + //return NSApplicationMain(argc, (const char **) argv); + + return 0; +} Binary files /tmp/2uW2akl5u_/rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/schelper.icns and /tmp/3C61p4gquV/rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/schelper.icns differ diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/sendmsg.h rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/sendmsg.h --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/sendmsg.h 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/sendmsg.h 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,41 @@ +#ifndef __SEND_MSG_SCPLUGIN__ +#define __SEND_MSG_SCPLUGIN__ + + +enum MenuItems +{ + ADD = 1, + ANNOTATE, + CHECK_FOR_MODS, + CHECKOUT, + CLEANUP, + COMMIT, + DELETE, + EXPORT, + DIFF_RAW, + DIFF_GUI, + IGNORE, + LOG, + MARK_RESOLVED, + PROPERTIES, + REVERT, + RENAME, + UPDATE, + UPDATE_TO, + BRANCH, + MERGE, + RELOCATE, + REPO_BROWSER, + SWITCH, + LOCK, + UNLOCK, + CREATE_PATCH, + APPLY_PATCH, + SETTINGS, + ABOUT +}; + + +void sendCommand(NSArray* selectedFiles, int cmd); + +#endif \ No newline at end of file diff -Nru rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/sendmsg.m rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/sendmsg.m --- rabbitvcs-0.15.0.5/clients/osx_finder/toolbar_button/sendmsg.m 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/clients/osx_finder/toolbar_button/sendmsg.m 2012-09-23 21:12:59.000000000 +0000 @@ -0,0 +1,159 @@ + +#import +#import +#import "sendmsg.h" + +#define RABBIT "" +//"/opt/rabbit/bin/rabbitvcs_osx " + +void sendCommand(NSArray* selectedFiles, int commandid) +{ + bool acceptsFiles = YES; + + NSMutableArray* arguments = [[NSMutableArray alloc] initWithCapacity:32]; + + + switch (commandid) + { + case ADD: + [arguments addObject:@"add"]; + break; + + case ANNOTATE: + [arguments addObject:@"annotate"]; + break; + + case CHECK_FOR_MODS: + [arguments addObject:@"checkmods"]; + break; + + case CHECKOUT: + [arguments addObject:@"checkout"]; + break; + + case CLEANUP: + [arguments addObject:@"cleanup"]; + break; + + case COMMIT: + [arguments addObject:@"commit"]; + break; + + case DELETE: + [arguments addObject:@"delete"]; + break; + + case EXPORT: + [arguments addObject:@"export"]; + break; + + case DIFF_RAW: + [arguments addObject:@"diff"]; + break; + + case DIFF_GUI: + [arguments addObject:@"diff"]; + [arguments addObject:@"-s"]; + break; + + case IGNORE: + [arguments addObject:@"ignore"]; + break; + + case LOG: + [arguments addObject:@"log"]; + break; + + case MARK_RESOLVED: + [arguments addObject:@"markresolved"]; + break; + + case PROPERTIES: + [arguments addObject:@"properties"]; + break; + + case REVERT: + [arguments addObject:@"revert"]; + break; + + case RENAME: + [arguments addObject:@"rename"]; + break; + + case UPDATE: + [arguments addObject:@"update"]; + break; + + case UPDATE_TO: + [arguments addObject:@"updateto"]; + break; + + case BRANCH: + [arguments addObject:@"branch"]; + break; + + case MERGE: + [arguments addObject:@"merge"]; + break; + + case RELOCATE: + [arguments addObject:@"relocate"]; + break; + + case REPO_BROWSER: + [arguments addObject:@"browser"]; + break; + + case SWITCH: + [arguments addObject:@"switch"]; + break; + + case LOCK: + [arguments addObject:@"lock"]; + break; + + case UNLOCK: + [arguments addObject:@"unlock"]; + break; + + case CREATE_PATCH: + [arguments addObject:@"createpatch"]; + break; + + case APPLY_PATCH: + [arguments addObject:@"applypatch"]; + break; + + case SETTINGS: + [arguments addObject:@"settings"]; + acceptsFiles = NO; + break; + + case ABOUT: + [arguments addObject:@"about"]; + acceptsFiles = NO; + break; + + default: + fprintf(stderr, "Unknown command %i\n", commandid); + return; + } + + + NSTask* task = [[NSTask alloc] init]; + [task setLaunchPath: @"/opt/rabbit/bin/rabbitvcs_osx"]; + + if (acceptsFiles) + { + NSLog(@"%i selected files\n", [selectedFiles count] ); + for (NSString* curr in selectedFiles) + { + NSLog(@" - %@\n", curr); + } + + [arguments addObjectsFromArray: selectedFiles]; + } + + [task setArguments:arguments]; + [task launch]; +} diff -Nru rabbitvcs-0.15.0.5/debian/changelog rabbitvcs-0.15.2/debian/changelog --- rabbitvcs-0.15.0.5/debian/changelog 2012-08-09 09:43:56.000000000 +0000 +++ rabbitvcs-0.15.2/debian/changelog 2012-11-19 22:39:17.000000000 +0000 @@ -1,3 +1,27 @@ +rabbitvcs (0.15.2-1) unstable; urgency=low + + * Team upload. + * New upstream release: + - Issue 187: Drop-down list of pre-defined properties in the property + dialog + - Issue 261: RabbitVCS incompatible with TortoiseHg + - Issue 562: 'Refresh Status' does not work + - Issue 585: Fix "Browser can not handle path with non-English name" + - Issue 586: Fixed "Browser can not handle path with non-English name" + - Issue 605: Log window Forward button does not work for me + - Issue 628: (Sub)directories with a white space are not correctly + managed (closes: #665193) + - Issue 716: Unicode regression from (Sub)directories with a white + space are not correctly managed + - Fixed commit ID not being reported when committing to a git repository. + * Bump python-svn dependency (upstream issue 564). + * Make dependency on python-dulwich versioned (upstream issue 579). + * Drop 50_fix_gedit3_plugin.patch and 60_support_subversion_1.7.patch + patches which were part of 0.15.1. + * Update debian/copyright. + + -- Arthur de Jong Mon, 19 Nov 2012 23:39:17 +0100 + rabbitvcs (0.15.0.5-3) unstable; urgency=low * Team upload. diff -Nru rabbitvcs-0.15.0.5/debian/control rabbitvcs-0.15.2/debian/control --- rabbitvcs-0.15.0.5/debian/control 2012-03-19 21:25:21.000000000 +0000 +++ rabbitvcs-0.15.2/debian/control 2012-09-23 21:29:53.000000000 +0000 @@ -18,7 +18,7 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), diff -Nru rabbitvcs-0.15.0.5/debian/copyright rabbitvcs-0.15.2/debian/copyright --- rabbitvcs-0.15.0.5/debian/copyright 2012-03-18 14:05:17.000000000 +0000 +++ rabbitvcs-0.15.2/debian/copyright 2012-11-14 22:24:23.000000000 +0000 @@ -7,8 +7,68 @@ Copyright: Copyright (C) 2006-2008 Jason Field Copyright (C) 2007-2009 Bruce van der Kooij - Copyright (C) 2008-2010 Adam Plumb - Copyright (C) 2009-2010 Jason Heeris + Copyright (C) 2008-2011 Adam Plumb + Copyright (C) 2009-2011 Jason Heeris +License: GPL-2+ + +Files: po/* +Copyright: + Copyright (C) 2009 Marcel Stimberg + Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (c) 2009-2010 Rosetta Contributors and Canonical Ltd +License: GPL-2+ + +Files: rabbitvcs/ui/renderers/graphcell.py +Copyright: + Copyright 2005 Canonical Ltd. +License: GPL-2+ + +Files: rabbitvcs/vcs/git/gittyup/_configobj/configobj.py +Copyright: + Copyright (C) 2005-2010 Michael Foord + Copyright (C) 2005-2010 Nicola Larosa +License: BSD-3-clause + +Files: rabbitvcs/debug/ipython_view.py +Copyright: + Copyright (C) 2007 IBM Corporation +License: BSD-2-clause + +Files: rabbitvcs/ui/wraplabel.py +Copyright: + Copyright (C) 2005 VMware, Inc. +License: Expat + +Files: data/icons/hicolor/scalable/emblems/* +Copyright: + TortoiseSVN + Copyright (C) 2009 Bruce van der Kooij + Copyright (C) 2009 Jason Heeris +License: GPL-2+ + +Files: data/icons/hicolor/scalable/actions/* +Copyright: + Andreas Nilsson + Garrett LeSage + Jakub Steiner + Kalle Persson + Lapo Calamandrei + Ricardo 'Rick' González + Steven Garrity + System Run + Trashbin + Tuomas Kuosmanen + Ulisse Perusin +License: GPL-2+ + +Files: debian/* +Copyright: + Copyright (C) 2006-2008 Jason Field + Copyright (C) 2007-2008 Bruce van der Kooij + Copyright (C) 2008-2008 Adam Plumb + Copyright (C) 2009-2011 Jason Heeris +License: GPL-3+ + License: GPL-2+ RabbitVCS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,18 +84,11 @@ License can be found in the `/usr/share/common-licenses/GPL-2' file. -Files: rabbitvcs/ui/renderers/graphcell.py -Copyright: - Copyright 2005 Canonical Ltd. -License: GPL-2+ +License: GPL-3+ On Debian systems the full text of the GNU General Public - License can be found in the `/usr/share/common-licenses/GPL-2' + License can be found in the `/usr/share/common-licenses/GPL-3' file. -Files: rabbitvcs/vcs/git/gittyup/_configobj/configobj.py -Copyright: - Copyright (C) 2005-2010 Michael Foord - Copyright (C) 2005-2010 Nicola Larosa License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -63,9 +116,6 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Files: rabbitvcs/debug/ipython_view.py -Copyright: - Copyright (c) 2007 IBM Corporation License: BSD-2-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -91,9 +141,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Files: rabbitvcs/ui/wraplabel.py -Copyright: - Copyright (c) 2005 VMware, Inc. License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -112,42 +159,3 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Files: data/icons/hicolor/scalable/emblems/* -Copyright: - TortoiseSVN - Copyright (C) 2009 Bruce van der Kooij - Copyright (C) 2009 Jason Heeris -License: GPL-2+ - On Debian systems the full text of the GNU General Public - License can be found in the `/usr/share/common-licenses/GPL-2' - file. - -Files: data/icons/hicolor/scalable/actions/* -Copyright: - Andreas Nilsson - Garrett LeSage - Jakub Steiner - Kalle Persson - Lapo Calamandrei - Ricardo 'Rick' González - Steven Garrity - System Run - Trashbin - Tuomas Kuosmanen - Ulisse Perusin -License: GPL-2+ - On Debian systems the full text of the GNU General Public - License can be found in the `/usr/share/common-licenses/GPL-2' - file. - -Files: debian/* -Copyright: - Copyright (C) 2006-2008 Jason Field - Copyright (C) 2007-2008 Bruce van der Kooij - Copyright (C) 2008-2008 Adam Plumb - Copyright (C) 2009-2011 Jason Heeris -License: GPL-3+ - On Debian systems the full text of the GNU General Public - License can be found in the `/usr/share/common-licenses/GPL-3' - file. diff -Nru rabbitvcs-0.15.0.5/debian/patches/50_fix_gedit3_plugin.patch rabbitvcs-0.15.2/debian/patches/50_fix_gedit3_plugin.patch --- rabbitvcs-0.15.0.5/debian/patches/50_fix_gedit3_plugin.patch 2012-03-19 21:25:21.000000000 +0000 +++ rabbitvcs-0.15.2/debian/patches/50_fix_gedit3_plugin.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,309 +0,0 @@ -Description: Fix the gedit plugin for Gedit3 -From: Adam Plumb -Origin: upstream, http://code.google.com/p/rabbitvcs/source/detail?r=3022 -Bug: http://code.google.com/p/rabbitvcs/issues/detail?id=622 -Bug-Debian: http://bugs.debian.org/635123 - ---- a/rabbitvcs/util/contextmenuitems.py -+++ b/rabbitvcs/util/contextmenuitems.py -@@ -204,7 +204,7 @@ - ) - - return action -- -+ - def make_gtk_menu_item(self, id_magic = None): - action = self.make_action(id_magic) - -@@ -217,6 +217,17 @@ - else: - menuitem = action.create_menu_item() - -+ return menuitem -+ -+ def make_gtk3_menu_item(self, id_magic = None): -+ action = self.make_action(id_magic) -+ -+ if self.icon: -+ menuitem = action.create_menu_item() -+ menuitem.set_image(gtk.Image.new_from_icon_name(self.icon, gtk.IconSize.MENU)) -+ else: -+ menuitem = action.create_menu_item() -+ - return menuitem - - def make_nautilus_menu_item(self, id_magic = None): ---- a/clients/gedit/rabbitvcs.gedit-plugin -+++ /dev/null -@@ -1,10 +0,0 @@ --[Gedit Plugin] --Loader=python --Module=rabbitvcs-plugin --IAge=2 --Name=RabbitVCS --Description=RabbitVCS plugin for Gedit --Authors=Adam Plumb --Copyright=Copyright © 2009 Adam Plumb --Website=http://www.rabbitvcs.org -- ---- /dev/null -+++ b/clients/gedit/rabbitvcs-gedit2.gedit-plugin -@@ -0,0 +1,10 @@ -+[Gedit Plugin] -+Loader=python -+Module=rabbitvcs-plugin -+IAge=2 -+Name=RabbitVCS -+Description=RabbitVCS plugin for Gedit -+Authors=Adam Plumb -+Copyright=Copyright © 2011 Adam Plumb -+Website=http://www.rabbitvcs.org -+ ---- a/clients/gedit/rabbitvcs-plugin.py -+++ b/clients/gedit/rabbitvcs-plugin.py -@@ -2,7 +2,7 @@ - # This is a Gedit plugin to allow for RabbitVCS integration in the Gedit - # text editor. - # --# Copyright (C) 2008-2008 by Adam Plumb -+# Copyright (C) 2008-2011 by Adam Plumb - # - # RabbitVCS is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by -@@ -21,8 +21,17 @@ - from gettext import gettext as _ - - import os --import gtk --import gedit -+ -+try: -+ from gi.repository import Gedit -+ os.environ["NAUTILUS_PYTHON_REQUIRE_GTK3"] = "1" -+ GTK3 = True -+except ImportError: -+ import gedit -+ GTK3 = False -+ -+from gi.repository import GObject -+from gi.repository import Gtk as gtk - - import rabbitvcs.util.helper - from rabbitvcs.vcs import create_vcs_instance -@@ -327,8 +336,15 @@ - - manager = self._window.get_ui_manager() - for menu_path in self._menu_paths: -- widget = manager.get_widget(menu_path) -- self._menubar_menu.update_action(widget.get_action()) -+ # Gtk3 changes how we access a widget's action. Get it from the -+ # UI Manager instead of the widget directly -+ if hasattr(manager, "get_action"): -+ action = manager.get_action(menu_path) -+ else: -+ widget = manager.get_widget(menu_path) -+ action = widget.get_action() -+ -+ self._menubar_menu.update_action(action) - - # Menu activate handlers - def reload_settings(self, proc): -@@ -337,49 +353,100 @@ - def on_context_menu_command_finished(self): - self.update_ui() - --class RabbitVCSPlugin(gedit.Plugin): -- def __init__(self): -- gedit.Plugin.__init__(self) -- self._instances = {} -- self.id_name = "RabbitVCSContextMenuID" -- -- def activate(self, window): -- self._instances[window] = RabbitVCSWindowHelper(self, window) -- -- handler_ids = [] -- for signal in ('tab-added', 'tab-removed'): -- method = getattr(self, 'on_window_' + signal.replace('-', '_')) -- handler_ids.append(window.connect(signal, method)) -- -- window.set_data(self.id_name, handler_ids) -- if window in self._instances: -- for view in window.get_views(): -- self._instances[window].connect_view(view, self.id_name) -- -- def deactivate(self, window): -- widgets = [window] + window.get_views() -- for widget in widgets: -- handler_ids = widget.get_data(self.id_name) -- if handler_ids is not None: -- for handler_id in handler_ids: -- widget.disconnect(handler_id) -- widget.set_data(self.id_name, None) -- -- if window in self._instances: -- self._instances[window].deactivate() -- del self._instances[window] -- -- def update_ui(self, window): -- if window in self._instances: -- self._instances[window].update_ui() -- -- def on_window_tab_added(self, window, tab): -- if window in self._instances: -- self._instances[window].connect_view(tab.get_view(), self.id_name) -- -- def on_window_tab_removed(self, window, tab): -- if window in self._instances: -- self._instances[window].disconnect_view(tab.get_view(), self.id_name) -+if GTK3: -+ class RabbitVCSGedit3Plugin(GObject.Object, Gedit.WindowActivatable): -+ __gtype_name__ = "RabbitVCSGedit3Plugin" -+ window = GObject.property(type=Gedit.Window) -+ -+ def __init__(self): -+ GObject.Object.__init__(self) -+ self._instances = {} -+ self.id_name = "RabbitVCSContextMenuID" -+ -+ def do_activate(self): -+ self._instances[self.window] = RabbitVCSWindowHelper(self, self.window) -+ -+ handler_ids = [] -+ for signal in ('tab-added', 'tab-removed'): -+ method = getattr(self, 'on_window_' + signal.replace('-', '_')) -+ handler_ids.append(self.window.connect(signal, method)) -+ -+ self.window.set_data(self.id_name, handler_ids) -+ if self.window in self._instances: -+ for view in self.window.get_views(): -+ self._instances[self.window].connect_view(view, self.id_name) -+ -+ def do_deactivate(self): -+ widgets = [self.window] + self.window.get_views() -+ for widget in widgets: -+ handler_ids = widget.get_data(self.id_name) -+ if handler_ids is not None: -+ for handler_id in handler_ids: -+ widget.disconnect(handler_id) -+ widget.set_data(self.id_name, None) -+ -+ if self.window in self._instances: -+ self._instances[self.window].deactivate() -+ del self._instances[self.window] -+ -+ def do_update_state(self): -+ self.update_ui() -+ -+ def update_ui(self): -+ if self.window in self._instances: -+ self._instances[self.window].update_ui() -+ -+ def on_window_tab_added(self, window, tab): -+ if self.window in self._instances: -+ self._instances[self.window].connect_view(tab.get_view(), self.id_name) -+ -+ def on_window_tab_removed(self, window, tab): -+ if window in self._instances: -+ self._instances[self.window].disconnect_view(tab.get_view(), self.id_name) -+else: -+ class RabbitVCSGedit2Plugin(gedit.Plugin): -+ def __init__(self): -+ gedit.Plugin.__init__(self) -+ self._instances = {} -+ self.id_name = "RabbitVCSContextMenuID" -+ -+ def activate(self, window): -+ self._instances[window] = RabbitVCSWindowHelper(self, window) -+ -+ handler_ids = [] -+ for signal in ('tab-added', 'tab-removed'): -+ method = getattr(self, 'on_window_' + signal.replace('-', '_')) -+ handler_ids.append(window.connect(signal, method)) -+ -+ window.set_data(self.id_name, handler_ids) -+ if window in self._instances: -+ for view in window.get_views(): -+ self._instances[window].connect_view(view, self.id_name) -+ -+ def deactivate(self, window): -+ widgets = [window] + window.get_views() -+ for widget in widgets: -+ handler_ids = widget.get_data(self.id_name) -+ if handler_ids is not None: -+ for handler_id in handler_ids: -+ widget.disconnect(handler_id) -+ widget.set_data(self.id_name, None) -+ -+ if window in self._instances: -+ self._instances[window].deactivate() -+ del self._instances[window] -+ -+ def update_ui(self, window): -+ if window in self._instances: -+ self._instances[window].update_ui() -+ -+ def on_window_tab_added(self, window, tab): -+ if window in self._instances: -+ self._instances[window].connect_view(tab.get_view(), self.id_name) -+ -+ def on_window_tab_removed(self, window, tab): -+ if window in self._instances: -+ self._instances[window].disconnect_view(tab.get_view(), self.id_name) - - class MenuIgnoreByFilename(MenuItem): - identifier = "RabbitVCS::Ignore_By_Filename" -@@ -593,7 +660,10 @@ - signal = "activate" - - def make_menu_item(self, item, id_magic): -- return item.make_gtk_menu_item(id_magic) -+ if GTK3: -+ return item.make_gtk3_menu_item(id_magic) -+ else: -+ return item.make_gtk_menu_item(id_magic) - - def attach_submenu(self, menu_node, submenu_list): - submenu = gtk.Menu() ---- /dev/null -+++ b/clients/gedit/rabbitvcs-gedit3.plugin -@@ -0,0 +1,9 @@ -+[Plugin] -+Loader=python -+Module=rabbitvcs-plugin -+IAge=3 -+Name=RabbitVCS -+Description=RabbitVCS plugin for Gedit -+Authors=Adam Plumb -+Copyright=Copyright © 2011 Adam Plumb -+Website=http://www.rabbitvcs.org ---- a/clients/gedit/README -+++ b/clients/gedit/README -@@ -8,14 +8,24 @@ - * gedit - * (all other RabbitVCS requirements) - --To install: -+To install for Gedit 3: - To install for all users, copy rabbitvcs-plugin.py and -- rabbitvcs.gedit-plugin to: -+ rabbitvcs-gedit3.plugin to: -+ /usr/share/gedit/plugins -+ -+ To install for a single user, copy rabbitvcs-plugin.py and -+ rabbitvcs-gedit3.plugin to: -+ ~/.local/share/gedit/plugins -+ -+To install for Gedit 2: -+ To install for all users, copy rabbitvcs-plugin.py and -+ rabbitvcs-gedit2.gedit-plugin to: - /usr/lib/gedit-2/plugins - - To install for a single user, copy rabbitvcs-plugin.py and -- rabbitvcs.gedit-plugin to: -- ~/.gnome2/gedit/plugins -+ rabbitvcs-gedit2.gedit-plugin to: -+ ~/.gnome2/gedit/plugins -+ - - Troubleshooting: - diff -Nru rabbitvcs-0.15.0.5/debian/patches/60_support_subversion_1.7.patch rabbitvcs-0.15.2/debian/patches/60_support_subversion_1.7.patch --- rabbitvcs-0.15.0.5/debian/patches/60_support_subversion_1.7.patch 2012-07-20 22:38:10.000000000 +0000 +++ rabbitvcs-0.15.2/debian/patches/60_support_subversion_1.7.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Description: Support Subversion 1.7 working copies -Author: Adam Plumb -Origin: upstream, http://code.google.com/p/rabbitvcs/source/detail?r=3047 -Bug: http://code.google.com/p/rabbitvcs/issues/detail?id=601 -Bug: http://code.google.com/p/rabbitvcs/issues/detail?id=623 - ---- a/rabbitvcs/vcs/svn/__init__.py -+++ b/rabbitvcs/vcs/svn/__init__.py -@@ -276,6 +276,16 @@ - path = realpath(path) - return self.client.info(path) - -+ def find_repository_path(self, path): -+ path_to_check = path -+ while path_to_check != "/" and path_to_check != "": -+ if os.path.isdir(os.path.join(path_to_check, ".svn")): -+ return path_to_check -+ -+ path_to_check = os.path.split(path_to_check)[0] -+ -+ return None -+ - def status(self, path, summarize=True, invalidate=False): - if path in self.cache: - if invalidate: -@@ -323,14 +333,17 @@ - return False - - def is_in_a_or_a_working_copy(self, path): -- return self.is_working_copy(path) or self.is_working_copy(os.path.split(path)[0]) -+ if self.is_working_copy(path): -+ return True -+ -+ return (self.find_repository_path(os.path.split(path)[0]) != "") - - def is_versioned(self, path): - if self.is_working_copy(path): - return True - else: - # info will return nothing for an unversioned file inside a working copy -- if (self.is_working_copy(os.path.split(path)[0]) and -+ if (self.is_in_a_or_a_working_copy(path) and - self.client_info(path)): - return True - diff -Nru rabbitvcs-0.15.0.5/debian/patches/series rabbitvcs-0.15.2/debian/patches/series --- rabbitvcs-0.15.0.5/debian/patches/series 2012-07-20 22:33:39.000000000 +0000 +++ rabbitvcs-0.15.2/debian/patches/series 2012-09-23 21:36:30.000000000 +0000 @@ -1,3 +1 @@ -50_fix_gedit3_plugin.patch -60_support_subversion_1.7.patch 99_setup.py.patch diff -Nru rabbitvcs-0.15.0.5/packages/debian/debian/changelog rabbitvcs-0.15.2/packages/debian/debian/changelog --- rabbitvcs-0.15.0.5/packages/debian/debian/changelog 2011-11-06 12:56:57.000000000 +0000 +++ rabbitvcs-0.15.2/packages/debian/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,3 +1,27 @@ +rabbitvcs (0.15.2-1) unstable; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 17:53:46 +0800 + +rabbitvcs (0.15.0.5-1) unstable; urgency=low + + * New upstream release fixing several installation issues. + + -- Jason Heeris Sat, 12 Nov 2011 01:39:48 +0800 + rabbitvcs (0.15.0.1-1) unstable; urgency=low * New upstream release diff -Nru rabbitvcs-0.15.0.5/packages/debian/debian/control rabbitvcs-0.15.2/packages/debian/debian/control --- rabbitvcs-0.15.0.5/packages/debian/debian/control 2011-11-06 12:56:57.000000000 +0000 +++ rabbitvcs-0.15.2/packages/debian/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,14 +16,14 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), meld (>=1.1.2), ipython (>=0.7.1), hicolor-icon-theme (>= 0.10-2), - python-dulwich + python-dulwich (>= 0.6.1) Conflicts: nautilussvn, rabbitvcs Replaces: nautilussvn Description: Easy version control @@ -45,12 +45,22 @@ Package: rabbitvcs-gedit Architecture: all Depends: ${misc:Depends}, - gedit, + gedit (<< 3.0), rabbitvcs-core (>= 0.15) Description: Gedit extension for RabbitVCS RabbitVCS is a set of graphical tools written to provide simple and straightforward access to the version control systems SVN (Subversion) and Git. - This is the extension for gedit text editor. + This is the extension for gedit (v2) text editor. + +Package: rabbitvcs-gedit3 +Architecture: all +Depends: ${misc:Depends}, + gedit (>= 3.0), + rabbitvcs-core (>= 0.15) +Description: Gedit extension for RabbitVCS + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + This is the extension for gedit (v3) text editor. Package: rabbitvcs-nautilus Architecture: all diff -Nru rabbitvcs-0.15.0.5/packages/debian/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/debian/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/debian/debian/rabbitvcs-gedit.install 2010-11-27 17:28:25.000000000 +0000 +++ rabbitvcs-0.15.2/packages/debian/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -1,2 +1,2 @@ clients/gedit/rabbitvcs-plugin.py usr/lib/gedit-2/plugins -clients/gedit/rabbitvcs.gedit-plugin usr/lib/gedit-2/plugins +clients/gedit/rabbitvcs-gedit2.gedit-plugin usr/lib/gedit-2/plugins diff -Nru rabbitvcs-0.15.0.5/packages/debian/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/debian/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/debian/debian/rabbitvcs-nautilus3.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/debian/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/debian/debian/rabbitvcs-thunar.install rabbitvcs-0.15.2/packages/debian/debian/rabbitvcs-thunar.install --- rabbitvcs-0.15.0.5/packages/debian/debian/rabbitvcs-thunar.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/debian/debian/rabbitvcs-thunar.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,2 @@ +clients/thunar/RabbitVCS.py usr/lib/thunarx-2/python +clients/thunar/RabbitVCS.py usr/lib/thunarx-1/python diff -Nru rabbitvcs-0.15.0.5/packages/karmic/debian/changelog rabbitvcs-0.15.2/packages/karmic/debian/changelog --- rabbitvcs-0.15.0.5/packages/karmic/debian/changelog 2011-11-06 03:44:09.000000000 +0000 +++ rabbitvcs-0.15.2/packages/karmic/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,3 +1,28 @@ +rabbitvcs (0.15.0.5-2~karmic) karmic; urgency=low + + * Fixed Nautilus 3.0 client installation issue + + -- Jason Heeris Sat, 12 Nov 2011 01:44:06 +0800 + +rabbitvcs (0.15.0.5-1~karmic) karmic; urgency=low + + * New upstream release fixing gtkspell integration + + -- Jason Heeris Thu, 10 Nov 2011 07:19:17 +0800 + +rabbitvcs (0.15.0.3-1~karmic) karmic; urgency=low + + * New upstream point release: fixes missing data files. + + -- Jason Heeris Wed, 09 Nov 2011 23:41:04 +0800 + +rabbitvcs (0.15.0.1-3~karmic) karmic; urgency=low + + * Fixed epoch numbers in release + * Fixed client installation + + -- Jason Heeris Tue, 08 Nov 2011 08:08:53 +0800 + rabbitvcs (0.15.0.1-1~karmic) karmic; urgency=low * New upstream release diff -Nru rabbitvcs-0.15.0.5/packages/karmic/debian/control rabbitvcs-0.15.2/packages/karmic/debian/control --- rabbitvcs-0.15.0.5/packages/karmic/debian/control 2011-11-06 03:44:09.000000000 +0000 +++ rabbitvcs-0.15.2/packages/karmic/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,7 +16,7 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), @@ -55,7 +55,7 @@ Package: rabbitvcs-nautilus Architecture: all Depends: ${misc:Depends}, - nautilus (<< 3.0~), + nautilus (<< 1:3.0~), python-nautilus (>= 0.5.0~), python-nautilus (<< 1.0~), rabbitvcs-core (>= 0.15) @@ -67,7 +67,7 @@ Package: rabbitvcs-nautilus3 Architecture: all Depends: ${misc:Depends}, - nautilus (>= 3~), + nautilus (>= 1:3~), python-nautilus (>= 1.0~), python-gobject (>= 2.28.2~), rabbitvcs-core (>= 0.15) diff -Nru rabbitvcs-0.15.0.5/packages/karmic/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/karmic/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/karmic/debian/rabbitvcs-nautilus3.install 2011-11-06 12:12:52.000000000 +0000 +++ rabbitvcs-0.15.2/packages/karmic/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -1 +1 @@ -clients/nautilus/RabbitVCS.py usr/share/nautilus-python/extensions +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/lucid/debian/changelog rabbitvcs-0.15.2/packages/lucid/debian/changelog --- rabbitvcs-0.15.0.5/packages/lucid/debian/changelog 2011-11-06 09:03:42.000000000 +0000 +++ rabbitvcs-0.15.2/packages/lucid/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,3 +1,51 @@ +rabbitvcs (0.15.2-1~lucid) lucid; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 16:06:52 +0800 + +rabbitvcs (0.15.1-1~lucid) lucid; urgency=low + + * New upstream release (multiple bugfixes) + + -- Jason Heeris Sun, 26 Aug 2012 10:01:25 +0800 + +rabbitvcs (0.15.0.5-1~lucid) lucid; urgency=low + + * New upstream release fixing gtkspell integration issue + + -- Jason Heeris Thu, 10 Nov 2011 07:20:11 +0800 + +rabbitvcs (0.15.0.3-1~lucid) lucid; urgency=low + + * New upstream point release: fixes missing data files. + + -- Jason Heeris Wed, 09 Nov 2011 23:41:53 +0800 + +rabbitvcs (0.15.0.1-3~lucid) lucid; urgency=low + + * Fixed client installation + + -- Jason Heeris Tue, 08 Nov 2011 08:12:10 +0800 + +rabbitvcs (0.15.0.1-2~lucid) lucid; urgency=low + + * Fixed epoch numbering + + -- Jason Heeris Mon, 07 Nov 2011 23:34:05 +0800 + rabbitvcs (0.15.0.1-1~lucid) lucid; urgency=low * New upstream release diff -Nru rabbitvcs-0.15.0.5/packages/lucid/debian/control rabbitvcs-0.15.2/packages/lucid/debian/control --- rabbitvcs-0.15.0.5/packages/lucid/debian/control 2011-11-06 09:03:42.000000000 +0000 +++ rabbitvcs-0.15.2/packages/lucid/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,7 +16,7 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), @@ -55,7 +55,7 @@ Package: rabbitvcs-nautilus Architecture: all Depends: ${misc:Depends}, - nautilus (<< 3.0~), + nautilus (<< 1:3.0~), python-nautilus (>= 0.5.0~), python-nautilus (<< 1.0~), rabbitvcs-core (>= 0.15) @@ -67,7 +67,7 @@ Package: rabbitvcs-nautilus3 Architecture: all Depends: ${misc:Depends}, - nautilus (>= 3~), + nautilus (>= 1:3~), python-nautilus (>= 1.0~), python-gobject (>= 2.28.2~), rabbitvcs-core (>= 0.15) diff -Nru rabbitvcs-0.15.0.5/packages/lucid/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/lucid/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/lucid/debian/rabbitvcs-gedit.install 2010-11-27 17:28:25.000000000 +0000 +++ rabbitvcs-0.15.2/packages/lucid/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -1,2 +1,2 @@ clients/gedit/rabbitvcs-plugin.py usr/lib/gedit-2/plugins -clients/gedit/rabbitvcs.gedit-plugin usr/lib/gedit-2/plugins +clients/gedit/rabbitvcs-gedit2.gedit-plugin usr/lib/gedit-2/plugins diff -Nru rabbitvcs-0.15.0.5/packages/lucid/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/lucid/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/lucid/debian/rabbitvcs-nautilus3.install 2011-11-06 12:12:52.000000000 +0000 +++ rabbitvcs-0.15.2/packages/lucid/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -1 +1 @@ -clients/nautilus/RabbitVCS.py usr/share/nautilus-python/extensions +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/maverick/debian/changelog rabbitvcs-0.15.2/packages/maverick/debian/changelog --- rabbitvcs-0.15.0.5/packages/maverick/debian/changelog 2011-11-06 11:58:28.000000000 +0000 +++ rabbitvcs-0.15.2/packages/maverick/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,3 +1,51 @@ +rabbitvcs (0.15.2-1~maverick) maverick; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 16:36:04 +0800 + +rabbitvcs (0.15.1-1~maverick) maverick; urgency=low + + * New upstream release (multiple bugfixes) + + -- Jason Heeris Sun, 26 Aug 2012 10:05:03 +0800 + +rabbitvcs (0.15.0.5-1~maverick) maverick; urgency=low + + * New upstream release fixing gtkspell integration issue + + -- Jason Heeris Thu, 10 Nov 2011 07:20:52 +0800 + +rabbitvcs (0.15.0.3-1~maverick) maverick; urgency=low + + * New upstream point release: fixes missing data files. + + -- Jason Heeris Wed, 09 Nov 2011 23:42:16 +0800 + +rabbitvcs (0.15.0.1-3~maverick) maverick; urgency=low + + * Fixed client installation + + -- Jason Heeris Tue, 08 Nov 2011 08:13:30 +0800 + +rabbitvcs (0.15.0.1-2~maverick) maverick; urgency=low + + * Fixed epoch numbering in dependency + + -- Jason Heeris Mon, 07 Nov 2011 23:39:17 +0800 + rabbitvcs (0.15.0.1-1~maverick) maverick; urgency=low * New upstream release diff -Nru rabbitvcs-0.15.0.5/packages/maverick/debian/control rabbitvcs-0.15.2/packages/maverick/debian/control --- rabbitvcs-0.15.0.5/packages/maverick/debian/control 2011-11-06 11:58:28.000000000 +0000 +++ rabbitvcs-0.15.2/packages/maverick/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,7 +16,7 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), @@ -55,7 +55,7 @@ Package: rabbitvcs-nautilus Architecture: all Depends: ${misc:Depends}, - nautilus (<< 3.0~), + nautilus (<< 1:3.0~), python-nautilus (>= 0.5.0~), python-nautilus (<< 1.0~), rabbitvcs-core (>= 0.15) @@ -67,7 +67,7 @@ Package: rabbitvcs-nautilus3 Architecture: all Depends: ${misc:Depends}, - nautilus (>= 3~), + nautilus (>= 1:3~), python-nautilus (>= 1.0~), python-gobject (>= 2.28.2~), rabbitvcs-core (>= 0.15) diff -Nru rabbitvcs-0.15.0.5/packages/maverick/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/maverick/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/maverick/debian/rabbitvcs-gedit.install 2010-11-27 17:28:25.000000000 +0000 +++ rabbitvcs-0.15.2/packages/maverick/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -1,2 +1,2 @@ clients/gedit/rabbitvcs-plugin.py usr/lib/gedit-2/plugins -clients/gedit/rabbitvcs.gedit-plugin usr/lib/gedit-2/plugins +clients/gedit/rabbitvcs-gedit2.gedit-plugin usr/lib/gedit-2/plugins diff -Nru rabbitvcs-0.15.0.5/packages/maverick/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/maverick/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/maverick/debian/rabbitvcs-nautilus3.install 2011-11-06 12:12:52.000000000 +0000 +++ rabbitvcs-0.15.2/packages/maverick/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -1 +1 @@ -clients/nautilus/RabbitVCS.py usr/share/nautilus-python/extensions +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/natty/debian/changelog rabbitvcs-0.15.2/packages/natty/debian/changelog --- rabbitvcs-0.15.0.5/packages/natty/debian/changelog 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/natty/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,3 +1,51 @@ +rabbitvcs (0.15.2-1~natty) natty; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 16:39:59 +0800 + +rabbitvcs (0.15.1-1~natty) natty; urgency=low + + * New upstream release (multiple bugfixes) + + -- Jason Heeris Sun, 26 Aug 2012 10:05:50 +0800 + +rabbitvcs (0.15.0.5-1~natty) natty; urgency=low + + * New upstream release fixing gtkspell integration issue + + -- Jason Heeris Thu, 10 Nov 2011 07:21:22 +0800 + +rabbitvcs (0.15.0.3-1~natty) natty; urgency=low + + * New upstream point release: fixes missing data files. + + -- Jason Heeris Wed, 09 Nov 2011 23:42:36 +0800 + +rabbitvcs (0.15.0.1-3~natty) natty; urgency=low + + * Fixed client installation + + -- Jason Heeris Tue, 08 Nov 2011 08:19:03 +0800 + +rabbitvcs (0.15.0.1-2~natty) natty; urgency=low + + * Fixed epoch numbers in release + + -- Jason Heeris Tue, 08 Nov 2011 08:05:51 +0800 + rabbitvcs (0.15.0.1-1~natty) natty; urgency=low * New upstream release diff -Nru rabbitvcs-0.15.0.5/packages/natty/debian/control rabbitvcs-0.15.2/packages/natty/debian/control --- rabbitvcs-0.15.0.5/packages/natty/debian/control 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/natty/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,7 +16,7 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), @@ -55,7 +55,7 @@ Package: rabbitvcs-nautilus Architecture: all Depends: ${misc:Depends}, - nautilus (<< 3.0~), + nautilus (<< 1:3.0~), python-nautilus (>= 0.5.0~), python-nautilus (<< 1.0~), rabbitvcs-core (>= 0.15) @@ -67,7 +67,7 @@ Package: rabbitvcs-nautilus3 Architecture: all Depends: ${misc:Depends}, - nautilus (>= 3~), + nautilus (>= 1:3~), python-nautilus (>= 1.0~), python-gobject (>= 2.28.2~), rabbitvcs-core (>= 0.15) diff -Nru rabbitvcs-0.15.0.5/packages/natty/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/natty/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/natty/debian/rabbitvcs-gedit.install 2011-10-23 07:36:59.000000000 +0000 +++ rabbitvcs-0.15.2/packages/natty/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -1,2 +1,2 @@ clients/gedit/rabbitvcs-plugin.py usr/lib/gedit-2/plugins -clients/gedit/rabbitvcs.gedit-plugin usr/lib/gedit-2/plugins +clients/gedit/rabbitvcs-gedit2.gedit-plugin usr/lib/gedit-2/plugins diff -Nru rabbitvcs-0.15.0.5/packages/natty/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/natty/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/natty/debian/rabbitvcs-nautilus3.install 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/natty/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -1 +1 @@ -clients/nautilus/RabbitVCS.py usr/share/nautilus-python/extensions +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/oneiric/debian/changelog rabbitvcs-0.15.2/packages/oneiric/debian/changelog --- rabbitvcs-0.15.0.5/packages/oneiric/debian/changelog 2011-11-06 12:20:11.000000000 +0000 +++ rabbitvcs-0.15.2/packages/oneiric/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,4 +1,52 @@ -rabbitvcs (0.15.0.1-1~oneiric) oneiric; urgency=low +rabbitvcs (0.15.2-1~oneiric) oneiric; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 16:40:59 +0800 + +rabbitvcs (0.15.1-1~oneiric) oneiric; urgency=low + + * New upstream release (multiple bugfixes) + + -- Jason Heeris Sun, 26 Aug 2012 10:06:01 +0800 + +rabbitvcs (0.15.0.5-1~oneiric) oneiric; urgency=low + + * New upstream release fixing gtkspell integration issue + + -- Jason Heeris Thu, 10 Nov 2011 07:21:56 +0800 + +rabbitvcs (0.15.0.3-1~oneiric) oneiric; urgency=low + + * New upstream point release: fixes missing data files. + + -- Jason Heeris Wed, 09 Nov 2011 23:43:02 +0800 + +rabbitvcs (0.15.0.1-3~oneiric) oneiric; urgency=low + + * Fixed client installation + + -- Jason Heeris Tue, 08 Nov 2011 08:21:45 +0800 + +rabbitvcs (0.15.0.1-2~oneiric) oneiric; urgency=low + + * Fixed epoch numbering in dependency + + -- Jason Heeris Mon, 07 Nov 2011 23:50:35 +0800 + +rabbitvcs (0.15.0.1-1~oneiric~test1) oneiric; urgency=low * Initial packaging for Oneiric diff -Nru rabbitvcs-0.15.0.5/packages/oneiric/debian/control rabbitvcs-0.15.2/packages/oneiric/debian/control --- rabbitvcs-0.15.0.5/packages/oneiric/debian/control 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/oneiric/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,7 +16,7 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), @@ -45,7 +45,7 @@ Package: rabbitvcs-gedit Architecture: all Depends: ${misc:Depends}, - gedit, + gedit (>= 3.0), rabbitvcs-core (>= 0.15) Description: Gedit extension for RabbitVCS RabbitVCS is a set of graphical tools written to provide simple and @@ -55,7 +55,7 @@ Package: rabbitvcs-nautilus Architecture: all Depends: ${misc:Depends}, - nautilus (<< 3.0~), + nautilus (<< 1:3.0~), python-nautilus (>= 0.5.0~), python-nautilus (<< 1.0~), rabbitvcs-core (>= 0.15) @@ -67,7 +67,7 @@ Package: rabbitvcs-nautilus3 Architecture: all Depends: ${misc:Depends}, - nautilus (>= 3~), + nautilus (>= 1:3~), python-nautilus (>= 1.0~), python-gobject (>= 2.28.2~), rabbitvcs-core (>= 0.15) diff -Nru rabbitvcs-0.15.0.5/packages/oneiric/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/oneiric/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/oneiric/debian/rabbitvcs-gedit.install 2011-10-23 07:36:59.000000000 +0000 +++ rabbitvcs-0.15.2/packages/oneiric/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -1,2 +1,2 @@ -clients/gedit/rabbitvcs-plugin.py usr/lib/gedit-2/plugins -clients/gedit/rabbitvcs.gedit-plugin usr/lib/gedit-2/plugins +clients/gedit/rabbitvcs-plugin.py usr/share/gedit/plugins +clients/gedit/rabbitvcs-gedit3.plugin usr/share/gedit/plugins diff -Nru rabbitvcs-0.15.0.5/packages/oneiric/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/oneiric/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/oneiric/debian/rabbitvcs-nautilus3.install 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/oneiric/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -1 +1 @@ -clients/nautilus/RabbitVCS.py usr/share/nautilus-python/extensions +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/precise/debian/changelog rabbitvcs-0.15.2/packages/precise/debian/changelog --- rabbitvcs-0.15.0.5/packages/precise/debian/changelog 2011-11-06 12:50:35.000000000 +0000 +++ rabbitvcs-0.15.2/packages/precise/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -1,4 +1,52 @@ -rabbitvcs (0.15.0.1-1~precise) precise; urgency=low +rabbitvcs (0.15.2-1~precise) precise; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 16:44:44 +0800 + +rabbitvcs (0.15.1-1~precise) precise; urgency=low + + * New upstream release (multiple bugfixes) + + -- Jason Heeris Sun, 26 Aug 2012 10:06:10 +0800 + +rabbitvcs (0.15.0.5-1~precise) precise; urgency=low + + * New upstream release fixing gtkspell integration issue + + -- Jason Heeris Thu, 10 Nov 2011 07:22:26 +0800 + +rabbitvcs (0.15.0.3-1~precise) precise; urgency=low + + * New upstream point release: fixes missing data files. + + -- Jason Heeris Wed, 09 Nov 2011 23:43:26 +0800 + +rabbitvcs (0.15.0.1-3~precise) precise; urgency=low + + * Fixed client installation + + -- Jason Heeris Tue, 08 Nov 2011 08:22:51 +0800 + +rabbitvcs (0.15.0.1-2~precise) precise; urgency=low + + * Fixed epoch numbering of dependencies + + -- Jason Heeris Mon, 07 Nov 2011 23:57:30 +0800 + +rabbitvcs (0.15.0.1-1~precise~test1) precise; urgency=low * Initial packaging for precise diff -Nru rabbitvcs-0.15.0.5/packages/precise/debian/control rabbitvcs-0.15.2/packages/precise/debian/control --- rabbitvcs-0.15.0.5/packages/precise/debian/control 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/precise/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -16,14 +16,14 @@ ${python:Depends}, python-gtk2 (>= 2.12.1), python-gobject (>= 2.14.1), - python-svn (>= 1.5.2), + python-svn (>= 1.7.2), python-dbus (>= 0.82.4), python-configobj (>= 4.4.0), subversion (>= 1.4.6), meld (>=1.1.2), ipython (>=0.7.1), hicolor-icon-theme (>= 0.10-2), - python-dulwich + python-dulwich (>= 0.6.1) Conflicts: nautilussvn, rabbitvcs Replaces: nautilussvn Description: Easy version control @@ -45,7 +45,7 @@ Package: rabbitvcs-gedit Architecture: all Depends: ${misc:Depends}, - gedit, + gedit (>= 3.0), rabbitvcs-core (>= 0.15) Description: Gedit extension for RabbitVCS RabbitVCS is a set of graphical tools written to provide simple and @@ -55,7 +55,7 @@ Package: rabbitvcs-nautilus Architecture: all Depends: ${misc:Depends}, - nautilus (<< 3.0~), + nautilus (<< 1:3.0~), python-nautilus (>= 0.5.0~), python-nautilus (<< 1.0~), rabbitvcs-core (>= 0.15) @@ -67,7 +67,7 @@ Package: rabbitvcs-nautilus3 Architecture: all Depends: ${misc:Depends}, - nautilus (>= 3~), + nautilus (>= 1:3~), python-nautilus (>= 1.0~), python-gobject (>= 2.28.2~), rabbitvcs-core (>= 0.15) diff -Nru rabbitvcs-0.15.0.5/packages/precise/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/precise/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/precise/debian/rabbitvcs-gedit.install 2011-10-23 07:36:59.000000000 +0000 +++ rabbitvcs-0.15.2/packages/precise/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -1,2 +1,2 @@ -clients/gedit/rabbitvcs-plugin.py usr/lib/gedit-2/plugins -clients/gedit/rabbitvcs.gedit-plugin usr/lib/gedit-2/plugins +clients/gedit/rabbitvcs-plugin.py usr/share/gedit/plugins +clients/gedit/rabbitvcs-gedit3.plugin usr/share/gedit/plugins diff -Nru rabbitvcs-0.15.0.5/packages/precise/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/precise/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/precise/debian/rabbitvcs-nautilus3.install 2011-11-06 12:12:27.000000000 +0000 +++ rabbitvcs-0.15.2/packages/precise/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -1 +1 @@ -clients/nautilus/RabbitVCS.py usr/share/nautilus-python/extensions +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/changelog rabbitvcs-0.15.2/packages/quantal/debian/changelog --- rabbitvcs-0.15.0.5/packages/quantal/debian/changelog 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/changelog 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,23 @@ +rabbitvcs (0.15.2-1~quantal) quantal; urgency=low + + * New upstream release 0.15.2 + * Issue 187: Drop-down list of pre-defined properties in the property dialog + * Issue 261: RabbitVCS incompatible with TortoiseHg + * Issue 562: 'Refresh Status' does not work + * Issue 585: Fix "Browser can not handle path with non-English name" + * Issue 586: Fixed "Browser can not handle path with non-English name" + * Issue 564: Debian: Version of python-svn in Depends: is too low + * Issue 579: Ask for dulwich 0.6.1+ + * Issue 605: Log window Forward button does not work for me + * Issue 628: (Sub)directories with a white space are not correctly managed + * Issue 716: Unicode regression from (Sub)directories with a white space are not correctly managed + * Fixed commit ID not being reported when committing to a git repository. + * Updated packaging for Ubuntu and Debian. Added packaging for Quantal Quetzal (12.10) Ubuntu release. + + -- Jason Heeris Sun, 16 Sep 2012 16:46:59 +0800 + +rabbitvcs (0.15.1-1~quantal) quantal; urgency=low + + * New upstream release (multiple bugfixes) + + -- Jason Heeris Sun, 26 Aug 2012 10:06:23 +0800 diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/clean rabbitvcs-0.15.2/packages/quantal/debian/clean --- rabbitvcs-0.15.0.5/packages/quantal/debian/clean 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/clean 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,2 @@ +rabbitvcs/buildinfo.py + diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/compat rabbitvcs-0.15.2/packages/quantal/debian/compat --- rabbitvcs-0.15.0.5/packages/quantal/debian/compat 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/compat 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +7 diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/control rabbitvcs-0.15.2/packages/quantal/debian/control --- rabbitvcs-0.15.0.5/packages/quantal/debian/control 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/control 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,89 @@ +Source: rabbitvcs +Maintainer: Jason Heeris +Section: devel +Priority: optional +Build-Depends: debhelper (>= 7), + python (>= 2.5.2) +Build-Depends-Indep: python-support (>= 0.5.3), + pkg-config (>= 0.20) +Standards-Version: 3.9.2.0 +XS-Python-Version: >= 2.5 +Homepage: http://www.rabbitvcs.org + +Package: rabbitvcs-core +Architecture: all +Depends: ${misc:Depends}, + ${python:Depends}, + python-gtk2 (>= 2.12.1), + python-gobject (>= 2.14.1), + python-svn (>= 1.7.2), + python-dbus (>= 0.82.4), + python-configobj (>= 4.4.0), + subversion (>= 1.4.6), + meld (>=1.1.2), + ipython (>=0.7.1), + hicolor-icon-theme (>= 0.10-2), + python-dulwich (>= 0.6.1) +Conflicts: nautilussvn, rabbitvcs +Replaces: nautilussvn +Description: Easy version control + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + There are extensions for Nautilus, Thunar and GEdit, and a simple command-line + interface. + +Package: rabbitvcs-cli +Architecture: all +Depends: ${misc:Depends}, + ${python:Depends}, + rabbitvcs-core (>= 0.15) +Description: Command line interface for RabbitVCS + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + This is the command-line interface. + +Package: rabbitvcs-gedit +Architecture: all +Depends: ${misc:Depends}, + gedit (>= 3.0), + rabbitvcs-core (>= 0.15) +Description: Gedit extension for RabbitVCS + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + This is the extension for gedit text editor. + +Package: rabbitvcs-nautilus +Architecture: all +Depends: ${misc:Depends}, + nautilus (<< 1:3.0~), + python-nautilus (>= 0.5.0~), + python-nautilus (<< 1.0~), + rabbitvcs-core (>= 0.15) +Description: Nautilus 2 extension for RabbitVCS + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + This is the extension for the Nautilus file manager (v2 only). + +Package: rabbitvcs-nautilus3 +Architecture: all +Depends: ${misc:Depends}, + nautilus (>= 1:3~), + python-nautilus (>= 1.0~), + python-gobject (>= 2.28.2~), + rabbitvcs-core (>= 0.15) +Description: Nautilus 3 extension for RabbitVCS + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + This is the extension for the Nautilus file manager (v3.0 or greater). + +Package: rabbitvcs-thunar +Architecture: all +Depends: ${misc:Depends}, + thunar (>= 0.4.0), + thunarx-python (>= 0.2.0), + rabbitvcs-core (>= 0.15) +Description: Thunar extension for RabbitVCS + RabbitVCS is a set of graphical tools written to provide simple and + straightforward access to the version control systems SVN (Subversion) and Git. + This is the extension for the Thunar file manager. + diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/copyright rabbitvcs-0.15.2/packages/quantal/debian/copyright --- rabbitvcs-0.15.0.5/packages/quantal/debian/copyright 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/copyright 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,92 @@ +Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=48 +Name: rabbitvcs +Contact: RabbitVCS Team +Source: http://code.google.com/p/rabbitvcs/ + +Files: * +Copyright: 2006-2008, Jason Field + 2007-2008, Bruce van der Kooij + 2008-2008, Adam Plumb + 2009-2010, Jason Heeris +License: GPL-2+ + On Debian systems the full text of the GNU General Public + License can be found in the `/usr/share/common-licenses/GPL-2' + file. + +Files: debian/* +Copyright: 2006-2008, Jason Field + 2007-2008, Bruce van der Kooij + 2008-2008, Adam Plumb + 2009-2011, Jason Heeris +License: GPL-3+ + On Debian systems the full text of the GNU General Public + License can be found in the `/usr/share/common-licenses/GPL-3' + file. + +Files: rabbitvcs/data/icons/hicolor/scalable/emblems/*.svg +Copyright: TortoiseSVN +License: GPL-2+ + On Debian systems the full text of the GNU General Public + License can be found in the `/usr/share/common-licenses/GPL-2' + file. + +Files: rabbitvcs/util/decorators.py +Copyright: 2006-2008, Jason Field + 2007-2008, Bruce van der Kooij + 2008-2008, Adam Plumb + 2005-2009, Bastian Kleineidam + 2009, Jason Heeris +License: GPL-2+ + On Debian systems the full text of the GNU General Public + License can be found in the `/usr/share/common-licenses/GPL-2' + file. + +Files: rabbitvcs/debug/ipython_view.py +Copyright: 2007, IBM Corporation +License: + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of the IBM nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +Files: rabbitvcs/ui/wraplabel.py +Copyright: 2005, VMware Inc. +License: Expat + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/patches/99_setup.py.patch rabbitvcs-0.15.2/packages/quantal/debian/patches/99_setup.py.patch --- rabbitvcs-0.15.0.5/packages/quantal/debian/patches/99_setup.py.patch 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/patches/99_setup.py.patch 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,24 @@ +Description: Remove GTK icon cache rebuilding. + This removes the rebuilding of the GTK icon cache after installing the core. + It is not needed in any distro with hicolor-icon-theme >= 0.10-2 +Forwarded: not-needed +Author: Jason Heeris + +diff -Nur -x '*.orig' -x '*~' rabbitvcs-0.15/setup.py rabbitvcs-0.15.new/setup.py +--- rabbitvcs-0.15/setup.py 2011-11-06 11:32:48.053065966 +0800 ++++ rabbitvcs-0.15.new/setup.py 2011-11-06 11:33:02.232892091 +0800 +@@ -154,14 +154,3 @@ + # + # Post installation + # +- +-# Make sure the icon cache is deleted and recreated +-if sys.argv[1] == "install": +- +- if os.uname()[0] != 'Darwin': +- print "Running gtk-update-icon-cache" +- +- subprocess.Popen( +- ["gtk-update-icon-cache", icon_theme_directory], +- stdout=subprocess.PIPE +- ).communicate()[0] diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/patches/series rabbitvcs-0.15.2/packages/quantal/debian/patches/series --- rabbitvcs-0.15.0.5/packages/quantal/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/patches/series 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +99_setup.py.patch diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/pycompat rabbitvcs-0.15.2/packages/quantal/debian/pycompat --- rabbitvcs-0.15.0.5/packages/quantal/debian/pycompat 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/pycompat 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +2 diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/pyversions rabbitvcs-0.15.2/packages/quantal/debian/pyversions --- rabbitvcs-0.15.0.5/packages/quantal/debian/pyversions 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/pyversions 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +2.5- diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-cli.install rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-cli.install --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-cli.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-cli.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +clients/cli/rabbitvcs usr/bin diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-cli.manpages rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-cli.manpages --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-cli.manpages 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-cli.manpages 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +debian/rabbitvcs.1 diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-core.install rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-core.install --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-core.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-core.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +debian/tmp/* . diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-gedit.install rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-gedit.install --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-gedit.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-gedit.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,2 @@ +clients/gedit/rabbitvcs-plugin.py usr/share/gedit/plugins +clients/gedit/rabbitvcs-gedit3.plugin usr/share/gedit/plugins diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-nautilus.install rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-nautilus.install --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-nautilus.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-nautilus.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +clients/nautilus/RabbitVCS.py usr/lib/nautilus/extensions-2.0/python diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-nautilus3.install rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-nautilus3.install --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-nautilus3.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-nautilus3.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +clients/nautilus-3.0/RabbitVCS.py usr/share/nautilus-python/extensions diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-thunar.install rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-thunar.install --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs-thunar.install 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs-thunar.install 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,2 @@ +clients/thunar/RabbitVCS.py usr/lib/thunarx-2/python +clients/thunar/RabbitVCS.py usr/lib/thunarx-1/python diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs.1 rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs.1 --- rabbitvcs-0.15.0.5/packages/quantal/debian/rabbitvcs.1 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rabbitvcs.1 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,36 @@ +.\"Created with GNOME Manpages Editor Wizard +.\"http://sourceforge.net/projects/gmanedit2 +.TH rabbitvcs 1 "May 25, 2009" "" "rabbitvcs" + +.SH NAME +rabbitvcs \- Integrated version control for Nautilus + +.SH SYNOPSIS +.B rabbitvcs + [path1] [path2] ... +.br + +.SH DESCRIPTION +.B rabbitvcs +provides integrated support for various version control version systems in +the Nautilus file manager (currently only subversion). This command opens +a new +.B nautilus +window and applies the given VCS command. + +.SH OPTIONS +.B +.IP module +The VCS command to invoke. Available modules are: about, add, blame, checkout, +cleanup, commit, create, delete, export, ignore, import, lock, log, merge, +properties, relocate, rename, resolve, revert, settings, switch, unlock, update, +updateto + +.B +.IP path +The file(s) or directory(\-ies) to apply the action to. + +.SH "SEE ALSO" +.B nautilus(1) +, +.B svn(1) diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/rules rabbitvcs-0.15.2/packages/quantal/debian/rules --- rabbitvcs-0.15.0.5/packages/quantal/debian/rules 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/rules 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,7 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +# export DH_VERBOSE=1 + +%: + dh $@ diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/source/format rabbitvcs-0.15.2/packages/quantal/debian/source/format --- rabbitvcs-0.15.0.5/packages/quantal/debian/source/format 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/source/format 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1 @@ +3.0 (quilt) \ No newline at end of file diff -Nru rabbitvcs-0.15.0.5/packages/quantal/debian/watch rabbitvcs-0.15.2/packages/quantal/debian/watch --- rabbitvcs-0.15.0.5/packages/quantal/debian/watch 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/packages/quantal/debian/watch 2012-09-23 21:13:00.000000000 +0000 @@ -0,0 +1,5 @@ +version=3 +opts=\ +downloadurlmangle=s|.*[?]name=(.*?)&.*|http://rabbitvcs.googlecode.com/files/$1|,\ +filenamemangle=s|[^/]+[?]name=(.*?)&.*|$1| \ +http://code.google.com/p/rabbitvcs/downloads/detail[?]name=rabbitvcs-([0-9.]+).tar.gz&.* diff -Nru rabbitvcs-0.15.0.5/po/POTFILES.in rabbitvcs-0.15.2/po/POTFILES.in --- rabbitvcs-0.15.0.5/po/POTFILES.in 2011-11-07 19:04:11.000000000 +0000 +++ rabbitvcs-0.15.2/po/POTFILES.in 2012-09-23 21:13:00.000000000 +0000 @@ -1,79 +1,79 @@ util/helper.py -ui/commit.py -ui/lock.py -ui/remotes.py -ui/revert.py -ui/stage.py -ui/widget.py -ui/settings.py -ui/import.py -ui/markresolved.py -ui/log.py -ui/update.py -ui/browser.py +ui/export.py +ui/reset.py ui/merge.py -ui/property_editor.py -ui/relocate.py -ui/revprops.py -ui/property_page.py -ui/wraplabel.py -ui/xml/property_page.xml.h +ui/update.py +ui/create.py +ui/xml/about.xml.h +ui/xml/merge.xml.h +ui/xml/update.xml.h ui/xml/commit.xml.h -ui/xml/import.xml.h +ui/xml/property_editor.xml.h +ui/xml/annotate.xml.h +ui/xml/log.xml.h ui/xml/notification.xml.h -ui/xml/settings.xml.h -ui/xml/lock.xml.h ui/xml/properties.xml.h +ui/xml/lock.xml.h +ui/xml/browser.xml.h ui/xml/pull.xml.h ui/xml/ignore.xml.h -ui/xml/property_editor.xml.h -ui/xml/about.xml.h -ui/xml/add.xml.h -ui/xml/relocate.xml.h -ui/xml/merge.xml.h -ui/xml/manager.xml.h -ui/xml/log.xml.h -ui/xml/dialogs/conflict_decision.xml.h -ui/xml/dialogs/loading.xml.h -ui/xml/dialogs/create_folder.xml.h -ui/xml/dialogs/property.xml.h -ui/xml/dialogs/delete_confirmation.xml.h ui/xml/dialogs/name_email_prompt.xml.h +ui/xml/dialogs/certificate.xml.h +ui/xml/dialogs/conflict_decision.xml.h ui/xml/dialogs/error_notification.xml.h -ui/xml/dialogs/message_box.xml.h +ui/xml/dialogs/confirmation.xml.h ui/xml/dialogs/ssl_client_cert_prompt.xml.h +ui/xml/dialogs/delete_confirmation.xml.h +ui/xml/dialogs/message_box.xml.h +ui/xml/dialogs/loading.xml.h +ui/xml/dialogs/property.xml.h +ui/xml/dialogs/create_folder.xml.h ui/xml/dialogs/previous_messages.xml.h -ui/xml/dialogs/certificate.xml.h -ui/xml/dialogs/confirmation.xml.h ui/xml/clean.xml.h -ui/xml/browser.xml.h -ui/xml/update.xml.h +ui/xml/settings.xml.h +ui/xml/add.xml.h ui/xml/cleanup.xml.h -ui/xml/git-update.xml.h ui/xml/reset.xml.h -ui/xml/annotate.xml.h -ui/renderers/__init__.py +ui/xml/import.xml.h +ui/xml/git-update.xml.h +ui/xml/manager.xml.h +ui/xml/relocate.xml.h +ui/xml/property_page.xml.h +ui/editconflicts.py +ui/revprops.py ui/annotate.py -ui/cleanup.py -ui/export.py -ui/action.py -ui/updateto.py -ui/reset.py +ui/widget.py +ui/property_editor.py +ui/commit.py +ui/revert.py +ui/settings.py +ui/markresolved.py +ui/__init__.py +ui/add.py +ui/relocate.py +ui/property_page.py +ui/tags.py +ui/ignore.py +ui/import.py +ui/unlock.py ui/properties.py -ui/dialog.py -ui/open.py -ui/diff.py -ui/editconflicts.py +ui/action.py +ui/renderers/__init__.py +ui/rename.py +ui/wraplabel.py +ui/clone.py +ui/browser.py ui/delete.py +ui/open.py +ui/dialog.py +ui/lock.py ui/about.py -ui/ignore.py +ui/stage.py +ui/log.py ui/clean.py -ui/tags.py -ui/create.py +ui/updateto.py +ui/cleanup.py ui/unstage.py -ui/clone.py -ui/add.py -ui/rename.py -ui/__init__.py -ui/unlock.py +ui/remotes.py +ui/diff.py util/contextmenuitems.py diff -Nru rabbitvcs-0.15.0.5/po/RabbitVCS.pot rabbitvcs-0.15.2/po/RabbitVCS.pot --- rabbitvcs-0.15.0.5/po/RabbitVCS.pot 2011-11-07 19:04:11.000000000 +0000 +++ rabbitvcs-0.15.2/po/RabbitVCS.pot 2012-09-23 21:13:00.000000000 +0000 @@ -8,657 +8,762 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-07 13:56-0500\n" +"POT-Creation-Date: 2012-08-24 08:37-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: util/helper.py:124 +#: util/helper.py:127 msgid "just now" msgstr "" -#: util/helper.py:126 +#: util/helper.py:129 #, python-format msgid "%d minute(s) ago" msgstr "" -#: util/helper.py:662 +#: util/helper.py:688 #, python-format msgid "%i second" msgid_plural "%i seconds" msgstr[0] "" msgstr[1] "" -#: util/helper.py:665 +#: util/helper.py:691 #, python-format msgid "%i minute" msgid_plural "%i minutes" msgstr[0] "" msgstr[1] "" -#: util/helper.py:668 +#: util/helper.py:694 #, python-format msgid "%i hour" msgid_plural "%i hours" msgstr[0] "" msgstr[1] "" -#: util/helper.py:671 +#: util/helper.py:697 #, python-format msgid "%i day" msgid_plural "%i days" msgstr[0] "" msgstr[1] "" -#: util/helper.py:674 +#: util/helper.py:700 #, python-format msgid "%i week" msgid_plural "%i weeks" msgstr[0] "" msgstr[1] "" -#: util/helper.py:677 +#: util/helper.py:703 #, python-format msgid "%i month" msgid_plural "%i months" msgstr[0] "" msgstr[1] "" -#: util/helper.py:680 +#: util/helper.py:706 #, python-format msgid "%i year" msgid_plural "%i years" msgstr[0] "" msgstr[1] "" -#: ui/commit.py:93 ui/lock.py:111 ui/xml/dialogs/loading.xml.h:1 ui/add.py:95 -#: ui/unlock.py:85 -msgid "Loading..." -msgstr "" - -#: ui/commit.py:100 ui/lock.py:114 ui/add.py:98 ui/unlock.py:109 +#: ui/export.py:45 ui/export.py:124 #, python-format -msgid "Found %d item(s)" +msgid "Export - %s" msgstr "" -#: ui/commit.py:202 ui/commit.py:317 ui/lock.py:70 ui/revert.py:62 -#: ui/revert.py:128 ui/stage.py:63 ui/markresolved.py:61 ui/log.py:348 -#: ui/log.py:586 ui/browser.py:89 ui/action.py:118 ui/unstage.py:63 -#: ui/add.py:72 ui/unlock.py:61 -msgid "Path" +#: ui/export.py:72 ui/export.py:141 ui/clone.py:57 +msgid "The repository URL and destination path are both required fields." msgstr "" -#: ui/commit.py:202 ui/commit.py:317 ui/lock.py:70 ui/revert.py:62 -#: ui/revert.py:128 ui/stage.py:63 ui/markresolved.py:61 ui/unstage.py:63 -#: ui/add.py:72 ui/unlock.py:61 -msgid "Extension" +#: ui/export.py:92 ui/export.py:161 +msgid "Export" msgstr "" -#: ui/commit.py:203 ui/revert.py:63 ui/markresolved.py:62 -msgid "Text Status" +#: ui/export.py:93 ui/export.py:162 +msgid "Running Export Command..." msgstr "" -#: ui/commit.py:203 ui/revert.py:63 ui/markresolved.py:62 -msgid "Property Status" +#: ui/export.py:104 ui/export.py:170 +msgid "Completed Export" msgstr "" -#: ui/commit.py:292 ui/commit.py:400 ui/xml/commit.xml.h:4 -#: util/contextmenuitems.py:346 -msgid "Commit" +#: ui/reset.py:105 ui/xml/reset.xml.h:14 util/contextmenuitems.py:695 +msgid "Reset" msgstr "" -#: ui/commit.py:293 ui/commit.py:401 -msgid "Running Commit Command..." +#: ui/reset.py:106 +msgid "Running Reset Command..." msgstr "" -#: ui/commit.py:299 ui/commit.py:410 -msgid "Completed Commit" +#: ui/reset.py:113 +msgid "Completed Reset" msgstr "" -#: ui/commit.py:318 ui/revert.py:129 ui/property_editor.py:111 -msgid "Status" +#: ui/merge.py:94 +msgid "Running Merge Test" msgstr "" -#: ui/lock.py:71 -msgid "Locked" +#: ui/merge.py:95 +msgid "Completed Merge Test" msgstr "" -#: ui/lock.py:122 -msgid "Yes" +#: ui/merge.py:97 +msgid "Running Merge Command" msgstr "" -#: ui/lock.py:163 -msgid "Get Lock" +#: ui/merge.py:98 ui/merge.py:543 +msgid "Completed Merge" msgstr "" -#: ui/lock.py:164 -msgid "Running Lock Command..." +#: ui/merge.py:109 ui/merge.py:536 +msgid "Merge" msgstr "" -#: ui/lock.py:173 -msgid "Completed Lock" +#: ui/merge.py:451 +msgid "No active branch" msgstr "" -#: ui/remotes.py:59 -msgid "Remote Repository Manager" +#: ui/merge.py:462 +msgid "Author:" msgstr "" -#: ui/remotes.py:60 -msgid "Remote Repositories" +#: ui/merge.py:474 ui/tags.py:165 +msgid "Date:" msgstr "" -#: ui/remotes.py:66 ui/property_editor.py:111 ui/properties.py:63 -msgid "Name" +#: ui/merge.py:485 ui/xml/browser.xml.h:3 ui/tags.py:109 ui/tags.py:176 +msgid "Revision:" msgstr "" -#: ui/remotes.py:66 -msgid "Host" +#: ui/merge.py:497 ui/tags.py:128 ui/tags.py:188 +msgid "Message:" msgstr "" -#: ui/remotes.py:128 ui/tags.py:230 -#, python-format -msgid "Are you sure you want to delete %s?" +#: ui/merge.py:537 +msgid "Running Merge Command..." msgstr "" -#: ui/revert.py:50 ui/revert.py:103 ui/revert.py:115 ui/revert.py:168 -#: util/contextmenuitems.py:462 -msgid "Revert" +#: ui/update.py:53 ui/update.py:97 ui/xml/update.xml.h:6 +#: util/contextmenuitems.py:351 +msgid "Update" msgstr "" -#: ui/revert.py:104 ui/revert.py:169 -msgid "Running Revert Command..." +#: ui/update.py:54 ui/update.py:98 ui/updateto.py:95 +msgid "Updating..." msgstr "" -#: ui/revert.py:106 ui/revert.py:171 -msgid "Completed Revert" +#: ui/update.py:56 ui/update.py:103 ui/updateto.py:103 +msgid "Completed Update" msgstr "" -#: ui/stage.py:50 ui/stage.py:101 util/contextmenuitems.py:684 -msgid "Stage" +#: ui/create.py:51 +msgid "Repository successfully created" msgstr "" -#: ui/stage.py:102 -msgid "Running Stage Command..." +#: ui/create.py:53 +msgid "" +"There was an error creating the repository. Make sure the given folder is " +"empty." msgstr "" -#: ui/stage.py:105 -msgid "Completed Stage" +#: ui/create.py:67 util/contextmenuitems.py:656 +msgid "Initialize Repository" msgstr "" -#: ui/widget.py:902 ui/widget.py:908 ui/xml/merge.xml.h:11 -msgid "HEAD" +#: ui/create.py:68 +msgid "Setting up repository..." msgstr "" -#: ui/widget.py:903 ui/log.py:48 ui/log.py:337 ui/log.py:570 ui/browser.py:89 -#: ui/xml/merge.xml.h:19 ui/annotate.py:127 ui/annotate.py:228 -msgid "Revision" +#: ui/create.py:70 +msgid "Completed repository setup" msgstr "" -#: ui/widget.py:904 -msgid "Branch" +#: ui/xml/about.xml.h:1 +msgid "Links" msgstr "" -#: ui/widget.py:909 -msgid "Number" +#: ui/xml/about.xml.h:2 +msgid "Version Information" msgstr "" -#: ui/widget.py:912 -msgid "Working Copy" +#: ui/xml/about.xml.h:3 +msgid "RabbitVCS" msgstr "" -#: ui/widget.py:1103 -msgid "Repository:" +#: ui/xml/about.xml.h:4 util/contextmenuitems.py:603 +msgid "About" msgstr "" -#: ui/widget.py:1122 -msgid "Branch:" +#: ui/xml/about.xml.h:5 +msgid "Authors:" msgstr "" -#: ui/widget.py:1148 ui/xml/dialogs/certificate.xml.h:7 -msgid "Host:" +#: ui/xml/about.xml.h:6 +msgid "Thanks:" msgstr "" -#: ui/widget.py:1249 -msgid "Add line:" +#: ui/xml/merge.xml.h:1 +msgid "From URL" msgstr "" -#: ui/widget.py:1254 ui/xml/add.xml.h:1 ui/tags.py:273 ui/add.py:152 -#: util/contextmenuitems.py:433 -msgid "Add" +#: ui/xml/merge.xml.h:2 +msgid "From: (URL and revision to merge)" msgstr "" -#: ui/settings.py:43 ui/xml/settings.xml.h:35 -msgid "Unknown" +#: ui/xml/merge.xml.h:3 ui/xml/update.xml.h:1 ui/xml/reset.xml.h:1 +#: ui/xml/git-update.xml.h:1 +msgid "Options" msgstr "" -#: ui/settings.py:45 -msgid "There was an error communicating with the status checker service." +#: ui/xml/merge.xml.h:4 +msgid "Revision Range" msgstr "" -#: ui/settings.py:59 -msgid "English" +#: ui/xml/merge.xml.h:5 +msgid "To: (URL and revision to merge)" msgstr "" -#: ui/settings.py:119 -msgid "Config file:" +#: ui/xml/merge.xml.h:6 +msgid "URL to merge from" msgstr "" -#: ui/settings.py:297 -msgid "Select a program" +#: ui/xml/merge.xml.h:7 +msgid "Working Copy" msgstr "" -#: ui/settings.py:306 -msgid "Are you sure you want to clear your repository paths?" +#: ui/xml/merge.xml.h:8 +msgid "" +"Choose this method if you have made some changes to a branch and wish to " +"merge your changes with another branch." msgstr "" -#: ui/settings.py:313 -msgid "Repository paths cleared" +#: ui/xml/merge.xml.h:9 +msgid "" +"Choose this method if you wish to merge two different branches into your " +"working copy." msgstr "" -#: ui/settings.py:317 -msgid "Are you sure you want to clear your previous messages?" +#: ui/xml/merge.xml.h:10 +msgid "Choose this method if you wish to reintegrate a branch into the trunk." msgstr "" -#: ui/settings.py:324 -msgid "Previous messages cleared" +#: ui/xml/merge.xml.h:11 ui/widget.py:908 ui/widget.py:914 +msgid "HEAD" msgstr "" -#: ui/settings.py:328 -msgid "Are you sure you want to clear your authentication information?" +#: ui/xml/merge.xml.h:12 +msgid "Ignore ancestry" msgstr "" -#: ui/settings.py:345 -msgid "Authentication information cleared" +#: ui/xml/merge.xml.h:13 +msgid "Merge Assistant" msgstr "" -#: ui/import.py:40 -#, python-format -msgid "Import - %s" +#: ui/xml/merge.xml.h:14 +msgid "Merge a range of revisions" msgstr "" -#: ui/import.py:68 -msgid "The repository URL field is required." +#: ui/xml/merge.xml.h:15 +msgid "Merge two different trees" msgstr "" -#: ui/import.py:80 ui/xml/import.xml.h:3 util/contextmenuitems.py:523 -msgid "Import" +#: ui/xml/merge.xml.h:16 +msgid "Only record the merge" msgstr "" -#: ui/import.py:81 -msgid "Running Import Command..." +#: ui/xml/merge.xml.h:17 ui/xml/update.xml.h:4 +msgid "Recursive" msgstr "" -#: ui/import.py:89 -msgid "Completed Import" +#: ui/xml/merge.xml.h:18 +msgid "Reintegrate a branch" msgstr "" -#: ui/markresolved.py:48 ui/markresolved.py:102 util/contextmenuitems.py:468 -msgid "Mark as Resolved" +#: ui/xml/merge.xml.h:19 ui/annotate.py:127 ui/annotate.py:228 +#: ui/widget.py:909 ui/browser.py:89 ui/log.py:48 ui/log.py:337 ui/log.py:570 +msgid "Revision" msgstr "" -#: ui/markresolved.py:103 -msgid "Running Resolved Command..." +#: ui/xml/merge.xml.h:20 +msgid "Show log" msgstr "" -#: ui/markresolved.py:106 -msgid "Completed Mark as Resolved" +#: ui/xml/merge.xml.h:21 +msgid "Test Merge" msgstr "" -#: ui/log.py:120 -#, python-format -msgid "Log - %s" +#: ui/xml/merge.xml.h:22 +msgid "" +"Use the log dialog to select the revisions that you wish to merge. Or write " +"out the revisions manually, each separated by a comma. You can specify a " +"revision range by a dash. \n" +"\n" +"Example: 4-7,9,11,15-HEAD\n" +"\n" +"To merge all revisions, leave the box empty." msgstr "" -#: ui/log.py:271 ui/log.py:272 ui/xml/log.xml.h:7 -msgid "N/A" +#: ui/xml/update.xml.h:2 ui/xml/reset.xml.h:4 +msgid "Revision" msgstr "" -#: ui/log.py:337 ui/log.py:570 ui/browser.py:89 ui/annotate.py:127 -#: ui/annotate.py:228 -msgid "Author" +#: ui/xml/update.xml.h:3 +msgid "Omit Externals" msgstr "" -#: ui/log.py:338 ui/log.py:571 ui/browser.py:89 ui/annotate.py:128 -#: ui/annotate.py:229 ui/dialog.py:52 -msgid "Date" +#: ui/xml/update.xml.h:5 +msgid "Rollback to specified revision number" msgstr "" -#: ui/log.py:338 ui/log.py:571 ui/xml/dialogs/message_box.xml.h:1 -#: ui/dialog.py:52 -msgid "Message" +#: ui/xml/commit.xml.h:1 ui/xml/dialogs/create_folder.xml.h:1 +msgid "Add Message" msgstr "" -#: ui/log.py:348 ui/log.py:586 ui/action.py:118 -msgid "Action" +#: ui/xml/commit.xml.h:2 +msgid "Changed Files (double-click to compare with base)" msgstr "" -#: ui/log.py:349 -msgid "Copy From Path" +#: ui/xml/commit.xml.h:3 +msgid "Commit to:" msgstr "" -#: ui/log.py:349 -msgid "Copy From Revision" +#: ui/xml/commit.xml.h:4 ui/commit.py:307 ui/commit.py:360 ui/commit.py:423 +#: util/contextmenuitems.py:357 +msgid "Commit" msgstr "" -#: ui/log.py:570 -msgid "Graph" +#: ui/xml/commit.xml.h:5 ui/xml/lock.xml.h:4 +#: ui/xml/dialogs/previous_messages.xml.h:3 ui/xml/import.xml.h:5 +msgid "Previous Messages" msgstr "" -#: ui/log.py:798 -msgid "View diff against working copy" +#: ui/xml/commit.xml.h:6 ui/xml/lock.xml.h:5 ui/xml/add.xml.h:2 +msgid "Select / Deselect all" msgstr "" -#: ui/log.py:803 util/contextmenuitems.py:397 -msgid "View diff against previous revision" +#: ui/xml/commit.xml.h:7 +msgid "Show unversioned files" msgstr "" -#: ui/log.py:808 -msgid "View diff between revisions" +#: ui/xml/property_editor.xml.h:1 +msgid "Remote URI:" msgstr "" -#: ui/log.py:813 -msgid "Compare with working copy" +#: ui/xml/property_editor.xml.h:2 +msgid "Working Copy:" msgstr "" -#: ui/log.py:818 util/contextmenuitems.py:415 -msgid "Compare with previous revision" +#: ui/xml/property_editor.xml.h:3 +msgid "Add a new property." msgstr "" -#: ui/log.py:823 -msgid "Compare revisions" +#: ui/xml/property_editor.xml.h:4 +msgid "Close this dialog." msgstr "" -#: ui/log.py:829 -msgid "Show changes against previous revision" +#: ui/xml/property_editor.xml.h:5 +msgid "Property Editor" msgstr "" -#: ui/log.py:835 -msgid "Show changes between revisions" +#: ui/xml/property_editor.xml.h:6 +msgid "Refresh the list of properties." msgstr "" -#: ui/log.py:840 -msgid "Update to this revision" +#: ui/xml/annotate.xml.h:1 +msgid "From Revision" msgstr "" -#: ui/log.py:841 -msgid "Update the selected path to this revision" +#: ui/xml/annotate.xml.h:2 +msgid "To Revision" msgstr "" -#: ui/log.py:846 ui/log.py:850 -msgid "Edit author..." +#: ui/xml/annotate.xml.h:3 +msgid "Annotate" msgstr "" -#: ui/log.py:854 -msgid "Edit log message..." +#: ui/xml/log.xml.h:1 +msgid "100" msgstr "" -#: ui/log.py:858 -msgid "Edit revision properties..." +#: ui/xml/log.xml.h:2 +msgid "Affected File(s) (double-click to compare with base)" msgstr "" -#: ui/log.py:1119 -msgid "Edit author" +#: ui/xml/log.xml.h:3 ui/xml/dialogs/previous_messages.xml.h:1 +msgid "Message" msgstr "" -#: ui/log.py:1131 -msgid "Edit log message" +#: ui/xml/log.xml.h:4 +msgid "Revisions Table" msgstr "" -#: ui/update.py:53 ui/update.py:97 ui/xml/update.xml.h:6 -#: util/contextmenuitems.py:340 -msgid "Update" +#: ui/xml/log.xml.h:5 +msgid "Limit:" msgstr "" -#: ui/update.py:54 ui/update.py:98 ui/updateto.py:94 -msgid "Updating..." +#: ui/xml/log.xml.h:6 +msgid "Log" msgstr "" -#: ui/update.py:56 ui/update.py:103 ui/updateto.py:102 -msgid "Completed Update" +#: ui/xml/log.xml.h:7 ui/log.py:271 ui/log.py:272 +msgid "N/A" msgstr "" -#: ui/browser.py:89 -msgid "Size" +#: ui/xml/log.xml.h:8 +msgid "Refresh" msgstr "" -#: ui/browser.py:331 -msgid "Select" +#: ui/xml/log.xml.h:9 +msgid "Showing Revisions:" msgstr "" -#: ui/browser.py:352 -msgid "Create folder..." +#: ui/xml/log.xml.h:10 +msgid "Stop on copy" msgstr "" -#: ui/browser.py:357 -msgid "Copy to..." +#: ui/xml/log.xml.h:11 ui/dialog.py:136 +msgid "to" msgstr "" -#: ui/browser.py:362 -msgid "Copy URL to clipboard" +#: ui/xml/notification.xml.h:1 +msgid "Notification Messages" msgstr "" -#: ui/browser.py:367 -msgid "Move to..." +#: ui/xml/properties.xml.h:1 +msgid "Properties for:" msgstr "" -#: ui/browser.py:476 ui/rename.py:53 ui/rename.py:85 ui/rename.py:114 -msgid "Rename" +#: ui/xml/properties.xml.h:2 +msgid "Selected properties will be applied recursively." msgstr "" -#: ui/browser.py:476 ui/rename.py:53 -msgid "New Name:" +#: ui/xml/properties.xml.h:3 util/contextmenuitems.py:472 +msgid "Delete" msgstr "" -#: ui/browser.py:537 -msgid "Where do you want to copy the selection?" +#: ui/xml/properties.xml.h:4 +msgid "Delete properties recursively" msgstr "" -#: ui/browser.py:538 ui/browser.py:567 -msgid "New Location:" +#: ui/xml/properties.xml.h:5 +msgid "Edit..." msgstr "" -#: ui/browser.py:566 -msgid "Where do you want to move the selection?" +#: ui/xml/properties.xml.h:6 +msgid "New..." msgstr "" -#: ui/merge.py:94 -msgid "Running Merge Test" +#: ui/xml/properties.xml.h:7 util/contextmenuitems.py:585 +msgid "Properties" msgstr "" -#: ui/merge.py:95 -msgid "Completed Merge Test" +#: ui/xml/properties.xml.h:8 +msgid "URL/Path:" msgstr "" -#: ui/merge.py:97 -msgid "Running Merge Command" +#: ui/xml/lock.xml.h:1 +msgid "Files to lock" msgstr "" -#: ui/merge.py:98 -msgid "Completed Merge" +#: ui/xml/lock.xml.h:2 +msgid "Please describe why you are locking these files" msgstr "" -#: ui/merge.py:109 -msgid "Merge" +#: ui/xml/lock.xml.h:3 +msgid "Lock Files" msgstr "" -#: ui/merge.py:465 ui/merge.py:515 -msgid "Author:" +#: ui/xml/lock.xml.h:6 +msgid "Steal the locks" msgstr "" -#: ui/merge.py:477 ui/merge.py:527 ui/tags.py:165 -msgid "Date:" +#: ui/xml/browser.xml.h:1 +msgid "Load/Refresh" msgstr "" -#: ui/merge.py:488 ui/merge.py:538 ui/xml/browser.xml.h:3 ui/tags.py:109 -#: ui/tags.py:176 -msgid "Revision:" +#: ui/xml/browser.xml.h:2 util/contextmenuitems.py:383 +msgid "Repository Browser" msgstr "" -#: ui/merge.py:500 ui/merge.py:550 ui/tags.py:128 ui/tags.py:188 -msgid "Message:" +#: ui/xml/browser.xml.h:4 +msgid "URL:" msgstr "" -#: ui/property_editor.py:55 -msgid "" -"Note: changes to properties are applied instantly. You may review and " -"undo changes using the context menu for each item.\n" +#: ui/xml/pull.xml.h:1 +msgid "Pull Information" msgstr "" -#: ui/property_editor.py:60 -msgid "" -"Do you want to delete the selected properties from all files and " -"subdirectories\n" -"beneath this directory?" +#: ui/xml/pull.xml.h:2 ui/xml/git-update.xml.h:2 +msgid "Merge changes into local branch" msgstr "" -#: ui/property_editor.py:101 -msgid "File is not under version control." +#: ui/xml/pull.xml.h:3 +msgid "Pull" msgstr "" -#: ui/property_editor.py:111 ui/properties.py:63 -msgid "Value" +#: ui/xml/ignore.xml.h:1 +msgid "Ignore and exclude files from being tracked" msgstr "" -#: ui/property_editor.py:111 -msgid "Reserved" +#: ui/xml/ignore.xml.h:2 +msgid "Ignore" msgstr "" -#: ui/property_editor.py:155 ui/revprops.py:65 ui/properties.py:158 -msgid "Unable to retrieve properties list" +#: ui/xml/dialogs/name_email_prompt.xml.h:1 +msgid "Enter Name and Email Details" msgstr "" -#: ui/property_editor.py:189 -msgid "Unable to set new value for property." +#: ui/xml/dialogs/name_email_prompt.xml.h:2 +msgid "Email:" msgstr "" -#: ui/relocate.py:77 -msgid "The from and to url fields are both required." +#: ui/xml/dialogs/name_email_prompt.xml.h:3 +msgid "Name and Email" msgstr "" -#: ui/relocate.py:87 ui/xml/relocate.xml.h:3 -msgid "Relocate" +#: ui/xml/dialogs/name_email_prompt.xml.h:4 ui/xml/property_page.xml.h:2 +#: ui/tags.py:99 +msgid "Name:" msgstr "" -#: ui/relocate.py:88 -msgid "Running Relocate Command..." +#: ui/xml/dialogs/certificate.xml.h:1 +msgid "Certificate Details" msgstr "" -#: ui/relocate.py:95 -msgid "Completed Relocate" +#: ui/xml/dialogs/certificate.xml.h:2 +msgid "Accept Forever" msgstr "" -#: ui/property_page.py:146 -msgid "Repository URL" +#: ui/xml/dialogs/certificate.xml.h:3 +msgid "Accept Once" msgstr "" -#: ui/xml/property_page.xml.h:1 -msgid "Content status:" +#: ui/xml/dialogs/certificate.xml.h:4 +msgid "Check Certificate" msgstr "" -#: ui/xml/property_page.xml.h:2 ui/xml/dialogs/name_email_prompt.xml.h:4 -#: ui/tags.py:99 -msgid "Name:" +#: ui/xml/dialogs/certificate.xml.h:5 +msgid "Deny" msgstr "" -#: ui/xml/property_page.xml.h:3 -msgid "Property status:" +#: ui/xml/dialogs/certificate.xml.h:6 +msgid "Fingerprint:" msgstr "" -#: ui/xml/property_page.xml.h:4 util/contextmenuitems.py:352 -msgid "RabbitVCS" +#: ui/xml/dialogs/certificate.xml.h:7 ui/widget.py:1187 +msgid "Host:" msgstr "" -#: ui/xml/property_page.xml.h:5 -msgid "VCS:" +#: ui/xml/dialogs/certificate.xml.h:8 +msgid "Issuer:" msgstr "" -#: ui/xml/commit.xml.h:1 ui/xml/dialogs/create_folder.xml.h:1 -msgid "Add Message" +#: ui/xml/dialogs/certificate.xml.h:9 +#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:3 +msgid "Realm:" msgstr "" -#: ui/xml/commit.xml.h:2 -msgid "Changed Files (double-click to compare with base)" +#: ui/xml/dialogs/certificate.xml.h:10 +msgid "Valid:" msgstr "" -#: ui/xml/commit.xml.h:3 -msgid "Commit to:" +#: ui/xml/dialogs/conflict_decision.xml.h:1 +msgid "A conflict was found in the following file:" msgstr "" -#: ui/xml/commit.xml.h:5 ui/xml/import.xml.h:5 ui/xml/lock.xml.h:4 -#: ui/xml/dialogs/previous_messages.xml.h:3 -msgid "Previous Messages" +#: ui/xml/dialogs/conflict_decision.xml.h:2 +msgid "Accept Mine" msgstr "" -#: ui/xml/commit.xml.h:6 ui/xml/lock.xml.h:5 ui/xml/add.xml.h:2 -msgid "Select / Deselect all" +#: ui/xml/dialogs/conflict_decision.xml.h:3 +msgid "Accept Theirs" msgstr "" -#: ui/xml/commit.xml.h:7 -msgid "Show unversioned files" +#: ui/xml/dialogs/conflict_decision.xml.h:4 +msgid "After the editing conflict, mark the file as resolved." msgstr "" -#: ui/xml/import.xml.h:1 -msgid "Import Message" +#: ui/xml/dialogs/conflict_decision.xml.h:5 +msgid "Cancel" msgstr "" -#: ui/xml/import.xml.h:2 -msgid "Repository" +#: ui/xml/dialogs/conflict_decision.xml.h:6 +msgid "Edit Conflicts" msgstr "" -#: ui/xml/import.xml.h:4 -msgid "Include ignored files" +#: ui/xml/dialogs/conflict_decision.xml.h:7 +msgid "Merge Manually" msgstr "" -#: ui/xml/notification.xml.h:1 -msgid "Notification Messages" +#: ui/xml/dialogs/error_notification.xml.h:1 +msgid "RabbitVCS Error" msgstr "" -#: ui/xml/settings.xml.h:1 -msgid "Authentication" +#: ui/xml/dialogs/error_notification.xml.h:2 +msgid "RabbitVCS Error" msgstr "" -#: ui/xml/settings.xml.h:2 -msgid "Checker type:" +#: ui/xml/dialogs/confirmation.xml.h:1 ui/dialog.py:297 +msgid "Are you sure you want to continue?" msgstr "" -#: ui/xml/settings.xml.h:3 -msgid "Configuration Editor" +#: ui/xml/dialogs/confirmation.xml.h:2 +msgid "Confirmation" msgstr "" -#: ui/xml/settings.xml.h:4 -msgid "Log Messages" +#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:1 +msgid "Please provide your ssl certification file" msgstr "" -#: ui/xml/settings.xml.h:5 -msgid "Logging Options" +#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:2 +msgid "Path:" msgstr "" -#: ui/xml/settings.xml.h:6 -msgid "Memory usage: " +#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:4 +msgid "SSL Client Certification" msgstr "" -#: ui/xml/settings.xml.h:7 -msgid "Other Information" +#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:5 +msgid "Save Authentication" msgstr "" -#: ui/xml/settings.xml.h:8 -msgid "Process ID:" +#: ui/xml/dialogs/delete_confirmation.xml.h:2 +msgid "" +"Are you sure you want to delete %item%?" msgstr "" -#: ui/xml/settings.xml.h:9 -msgid "Program used to compare files" +#: ui/xml/dialogs/delete_confirmation.xml.h:3 +msgid "Delete Confirmation" msgstr "" -#: ui/xml/settings.xml.h:10 -msgid "RabbitVCS" +#: ui/xml/dialogs/delete_confirmation.xml.h:4 +msgid "The item(s) will be sent to the trash can." msgstr "" -#: ui/xml/settings.xml.h:11 +#: ui/xml/dialogs/message_box.xml.h:1 ui/dialog.py:52 ui/log.py:338 +#: ui/log.py:571 +msgid "Message" +msgstr "" + +#: ui/xml/dialogs/loading.xml.h:1 ui/commit.py:124 ui/add.py:94 +#: ui/unlock.py:85 ui/lock.py:111 +msgid "Loading..." +msgstr "" + +#: ui/xml/dialogs/property.xml.h:1 +msgid "Edit Property Details" +msgstr "" + +#: ui/xml/dialogs/property.xml.h:2 +msgid "Apply property recursively" +msgstr "" + +#: ui/xml/dialogs/property.xml.h:3 +msgid "Property" +msgstr "" + +#: ui/xml/dialogs/property.xml.h:4 +msgid "Property:" +msgstr "" + +#: ui/xml/dialogs/property.xml.h:5 +msgid "Value:" +msgstr "" + +#: ui/xml/dialogs/create_folder.xml.h:2 +msgid "Folder Name" +msgstr "" + +#: ui/xml/dialogs/create_folder.xml.h:3 +msgid "Create Folder..." +msgstr "" + +#: ui/xml/dialogs/previous_messages.xml.h:2 +msgid "Previous Messages" +msgstr "" + +#: ui/xml/clean.xml.h:1 +msgid "Clean your Repository" +msgstr "" + +#: ui/xml/clean.xml.h:2 ui/clean.py:75 util/contextmenuitems.py:691 +msgid "Clean" +msgstr "" + +#: ui/xml/clean.xml.h:3 +msgid "Dry run" +msgstr "" + +#: ui/xml/clean.xml.h:4 +msgid "Force" +msgstr "" + +#: ui/xml/clean.xml.h:5 +msgid "Remove directories" +msgstr "" + +#: ui/xml/clean.xml.h:6 +msgid "Remove ignored files, too" +msgstr "" + +#: ui/xml/clean.xml.h:7 +msgid "Remove only ignored files" +msgstr "" + +#: ui/xml/clean.xml.h:8 +msgid "Remove untracked files from the working tree" +msgstr "" + +#: ui/xml/settings.xml.h:1 +msgid "Authentication" +msgstr "" + +#: ui/xml/settings.xml.h:2 +msgid "Checker type:" +msgstr "" + +#: ui/xml/settings.xml.h:3 +msgid "Configuration Editor" +msgstr "" + +#: ui/xml/settings.xml.h:4 +msgid "Log Messages" +msgstr "" + +#: ui/xml/settings.xml.h:5 +msgid "Logging Options" +msgstr "" + +#: ui/xml/settings.xml.h:6 +msgid "Memory usage: " +msgstr "" + +#: ui/xml/settings.xml.h:7 +msgid "Other Information" +msgstr "" + +#: ui/xml/settings.xml.h:8 +msgid "Process ID:" +msgstr "" + +#: ui/xml/settings.xml.h:9 +msgid "Program used to compare files" +msgstr "" + +#: ui/xml/settings.xml.h:10 +msgid "RabbitVCS" +msgstr "" + +#: ui/xml/settings.xml.h:11 msgid "URL History" msgstr "" @@ -726,7 +831,7 @@ msgid "Saved Data" msgstr "" -#: ui/xml/settings.xml.h:28 util/contextmenuitems.py:581 +#: ui/xml/settings.xml.h:28 util/contextmenuitems.py:597 msgid "Settings" msgstr "" @@ -754,662 +859,514 @@ msgid "Type:" msgstr "" -#: ui/xml/lock.xml.h:1 -msgid "Files to lock" +#: ui/xml/settings.xml.h:35 ui/settings.py:43 +msgid "Unknown" msgstr "" -#: ui/xml/lock.xml.h:2 -msgid "Please describe why you are locking these files" +#: ui/xml/add.xml.h:1 ui/widget.py:1301 ui/add.py:178 ui/add.py:203 +#: ui/tags.py:273 util/contextmenuitems.py:449 +msgid "Add" msgstr "" -#: ui/xml/lock.xml.h:3 -msgid "Lock Files" +#: ui/xml/cleanup.xml.h:1 ui/cleanup.py:56 +msgid "Cleaning Up..." msgstr "" -#: ui/xml/lock.xml.h:6 -msgid "Steal the locks" +#: ui/xml/cleanup.xml.h:2 +msgid "" +"Cleanup Requested....\n" +"\n" +"Begin working copy cleanup?" msgstr "" -#: ui/xml/properties.xml.h:1 -msgid "Properties for:" +#: ui/xml/reset.xml.h:2 +msgid "Path" msgstr "" -#: ui/xml/properties.xml.h:2 -msgid "Selected properties will be applied recursively." +#: ui/xml/reset.xml.h:3 +msgid "Reset your Repository" msgstr "" -#: ui/xml/properties.xml.h:3 util/contextmenuitems.py:456 -msgid "Delete" +#: ui/xml/reset.xml.h:5 +msgid "" +"Hard - Matches the working tree and index to that of the \n" +"tree being switched to" msgstr "" -#: ui/xml/properties.xml.h:4 -msgid "Delete properties recursively" +#: ui/xml/reset.xml.h:7 +msgid "" +"Merge - Resets the index to match the tree recorded by the named " +"commit,\n" +"and updates the files that are different between the named commit\n" +"and the current commit in the working tree" msgstr "" -#: ui/xml/properties.xml.h:5 -msgid "Edit..." +#: ui/xml/reset.xml.h:10 +msgid "Mixed - Reset the index but not the working tree" msgstr "" -#: ui/xml/properties.xml.h:6 -msgid "New..." +#: ui/xml/reset.xml.h:11 +msgid "" +"Soft - Does not touch the index file or working tree at all, \n" +"but requires them to be in good working order" msgstr "" -#: ui/xml/properties.xml.h:7 util/contextmenuitems.py:569 -msgid "Properties" +#: ui/xml/reset.xml.h:13 +msgid "None" msgstr "" -#: ui/xml/properties.xml.h:8 -msgid "URL/Path:" +#: ui/xml/reset.xml.h:15 +msgid "Reset current HEAD to specified state." msgstr "" -#: ui/xml/pull.xml.h:1 -msgid "Pull Information" +#: ui/xml/import.xml.h:1 +msgid "Import Message" msgstr "" -#: ui/xml/pull.xml.h:2 ui/xml/git-update.xml.h:2 -msgid "Merge changes into local branch" +#: ui/xml/import.xml.h:2 +msgid "Repository" msgstr "" -#: ui/xml/pull.xml.h:3 -msgid "Pull" +#: ui/xml/import.xml.h:3 ui/import.py:80 util/contextmenuitems.py:539 +msgid "Import" msgstr "" -#: ui/xml/ignore.xml.h:1 -msgid "Ignore and exclude files from being tracked" +#: ui/xml/import.xml.h:4 +msgid "Include ignored files" msgstr "" -#: ui/xml/ignore.xml.h:2 -msgid "Ignore" +#: ui/xml/git-update.xml.h:3 +msgid "Update Local Repository" msgstr "" -#: ui/xml/property_editor.xml.h:1 -msgid "Remote URI:" +#: ui/xml/manager.xml.h:1 +msgid "label" msgstr "" -#: ui/xml/property_editor.xml.h:2 -msgid "Working Copy:" +#: ui/xml/relocate.xml.h:1 +msgid "Change the repository of your working copy" msgstr "" -#: ui/xml/property_editor.xml.h:3 -msgid "Add a new property." +#: ui/xml/relocate.xml.h:2 +msgid "From:" msgstr "" -#: ui/xml/property_editor.xml.h:4 -msgid "Close this dialog." +#: ui/xml/relocate.xml.h:3 ui/relocate.py:87 +msgid "Relocate" msgstr "" -#: ui/xml/property_editor.xml.h:5 -msgid "Property Editor" +#: ui/xml/relocate.xml.h:4 +msgid "To:" msgstr "" -#: ui/xml/property_editor.xml.h:6 -msgid "Refresh the list of properties." +#: ui/xml/property_page.xml.h:1 +msgid "Content status:" msgstr "" -#: ui/xml/about.xml.h:1 -msgid "Links" +#: ui/xml/property_page.xml.h:3 +msgid "Property status:" msgstr "" -#: ui/xml/about.xml.h:2 -msgid "Version Information" +#: ui/xml/property_page.xml.h:4 util/contextmenuitems.py:363 +msgid "RabbitVCS" msgstr "" -#: ui/xml/about.xml.h:3 -msgid "RabbitVCS" +#: ui/xml/property_page.xml.h:5 +msgid "VCS:" msgstr "" -#: ui/xml/about.xml.h:4 util/contextmenuitems.py:587 -msgid "About" +#: ui/revprops.py:65 ui/property_editor.py:155 ui/properties.py:158 +msgid "Unable to retrieve properties list" msgstr "" -#: ui/xml/about.xml.h:5 -msgid "Authors:" +#: ui/annotate.py:57 +msgid "Cannot annotate a directory" msgstr "" -#: ui/xml/about.xml.h:6 -msgid "Thanks:" +#: ui/annotate.py:63 +#, python-format +msgid "Annotate - %s" msgstr "" -#: ui/xml/relocate.xml.h:1 -msgid "Change the repository of your working copy" +#: ui/annotate.py:127 ui/annotate.py:228 +msgid "Line" msgstr "" -#: ui/xml/relocate.xml.h:2 -msgid "From:" +#: ui/annotate.py:127 ui/annotate.py:228 ui/browser.py:89 ui/log.py:337 +#: ui/log.py:570 +msgid "Author" msgstr "" -#: ui/xml/relocate.xml.h:4 -msgid "To:" +#: ui/annotate.py:128 ui/annotate.py:229 ui/browser.py:89 ui/dialog.py:52 +#: ui/log.py:338 ui/log.py:571 +msgid "Date" msgstr "" -#: ui/xml/merge.xml.h:1 -msgid "From URL" +#: ui/annotate.py:128 ui/annotate.py:229 +msgid "Text" msgstr "" -#: ui/xml/merge.xml.h:2 -msgid "From: (URL and revision to merge)" +#: ui/annotate.py:143 +msgid "The from revision field must be an integer" msgstr "" -#: ui/xml/merge.xml.h:3 ui/xml/update.xml.h:1 ui/xml/git-update.xml.h:1 -#: ui/xml/reset.xml.h:1 -msgid "Options" +#: ui/widget.py:910 +msgid "Branch" msgstr "" -#: ui/xml/merge.xml.h:4 -msgid "Revision Range" +#: ui/widget.py:915 +msgid "Number" msgstr "" -#: ui/xml/merge.xml.h:5 -msgid "To: (URL and revision to merge)" +#: ui/widget.py:918 +msgid "Working Copy" msgstr "" -#: ui/xml/merge.xml.h:6 -msgid "URL to merge from" -msgstr "" - -#: ui/xml/merge.xml.h:7 -msgid "Working Copy" -msgstr "" - -#: ui/xml/merge.xml.h:8 -msgid "" -"Choose this method if you have made some changes to a branch and wish to " -"merge your changes with another branch." -msgstr "" - -#: ui/xml/merge.xml.h:9 -msgid "" -"Choose this method if you wish to merge two different branches into your " -"working copy." -msgstr "" - -#: ui/xml/merge.xml.h:10 -msgid "Choose this method if you wish to reintegrate a branch into the trunk." -msgstr "" - -#: ui/xml/merge.xml.h:12 -msgid "Ignore ancestry" -msgstr "" - -#: ui/xml/merge.xml.h:13 -msgid "Merge Assistant" -msgstr "" - -#: ui/xml/merge.xml.h:14 -msgid "Merge a range of revisions" -msgstr "" - -#: ui/xml/merge.xml.h:15 -msgid "Merge two different trees" -msgstr "" - -#: ui/xml/merge.xml.h:16 -msgid "Only record the merge" -msgstr "" - -#: ui/xml/merge.xml.h:17 ui/xml/update.xml.h:4 -msgid "Recursive" -msgstr "" - -#: ui/xml/merge.xml.h:18 -msgid "Reintegrate a branch" +#: ui/widget.py:1142 +msgid "Repository:" msgstr "" -#: ui/xml/merge.xml.h:20 -msgid "Show log" +#: ui/widget.py:1161 +msgid "Branch:" msgstr "" -#: ui/xml/merge.xml.h:21 -msgid "Test Merge" +#: ui/widget.py:1296 +msgid "Add line:" msgstr "" -#: ui/xml/merge.xml.h:22 +#: ui/property_editor.py:55 msgid "" -"Use the log dialog to select the revisions that you wish to merge. Or write " -"out the revisions manually, each separated by a comma. You can specify a " -"revision range by a dash. \n" -"\n" -"Example: 4-7,9,11,15-HEAD\n" -"\n" -"To merge all revisions, leave the box empty." -msgstr "" - -#: ui/xml/manager.xml.h:1 -msgid "label" -msgstr "" - -#: ui/xml/log.xml.h:1 -msgid "100" -msgstr "" - -#: ui/xml/log.xml.h:2 -msgid "Affected File(s) (double-click to compare with base)" -msgstr "" - -#: ui/xml/log.xml.h:3 ui/xml/dialogs/previous_messages.xml.h:1 -msgid "Message" -msgstr "" - -#: ui/xml/log.xml.h:4 -msgid "Revisions Table" -msgstr "" - -#: ui/xml/log.xml.h:5 -msgid "Limit:" -msgstr "" - -#: ui/xml/log.xml.h:6 -msgid "Log" -msgstr "" - -#: ui/xml/log.xml.h:8 -msgid "Refresh" -msgstr "" - -#: ui/xml/log.xml.h:9 -msgid "Showing Revisions:" -msgstr "" - -#: ui/xml/log.xml.h:10 -msgid "Stop on copy" -msgstr "" - -#: ui/xml/log.xml.h:11 ui/dialog.py:136 -msgid "to" -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:1 -msgid "A conflict was found in the following file:" -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:2 -msgid "Accept Mine" -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:3 -msgid "Accept Theirs" -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:4 -msgid "After the editing conflict, mark the file as resolved." -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:5 -msgid "Cancel" -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:6 -msgid "Edit Conflicts" -msgstr "" - -#: ui/xml/dialogs/conflict_decision.xml.h:7 -msgid "Merge Manually" -msgstr "" - -#: ui/xml/dialogs/create_folder.xml.h:2 -msgid "Folder Name" -msgstr "" - -#: ui/xml/dialogs/create_folder.xml.h:3 -msgid "Create Folder..." -msgstr "" - -#: ui/xml/dialogs/property.xml.h:1 -msgid "Edit Property Details" -msgstr "" - -#: ui/xml/dialogs/property.xml.h:2 -msgid "Apply property recursively" -msgstr "" - -#: ui/xml/dialogs/property.xml.h:3 -msgid "Property" -msgstr "" - -#: ui/xml/dialogs/property.xml.h:4 -msgid "Property:" -msgstr "" - -#: ui/xml/dialogs/property.xml.h:5 -msgid "Value:" +"Note: changes to properties are applied instantly. You may review and " +"undo changes using the context menu for each item.\n" msgstr "" -#: ui/xml/dialogs/delete_confirmation.xml.h:2 +#: ui/property_editor.py:60 msgid "" -"Are you sure you want to delete %item%?" +"Do you want to delete the selected properties from all files and " +"subdirectories\n" +"beneath this directory?" msgstr "" -#: ui/xml/dialogs/delete_confirmation.xml.h:3 -msgid "Delete Confirmation" +#: ui/property_editor.py:101 +msgid "File is not under version control." msgstr "" -#: ui/xml/dialogs/delete_confirmation.xml.h:4 -msgid "The item(s) will be sent to the trash can." +#: ui/property_editor.py:111 ui/properties.py:63 ui/remotes.py:66 +msgid "Name" msgstr "" -#: ui/xml/dialogs/name_email_prompt.xml.h:1 -msgid "Enter Name and Email Details" +#: ui/property_editor.py:111 ui/properties.py:63 +msgid "Value" msgstr "" -#: ui/xml/dialogs/name_email_prompt.xml.h:2 -msgid "Email:" +#: ui/property_editor.py:111 +msgid "Reserved" msgstr "" -#: ui/xml/dialogs/name_email_prompt.xml.h:3 -msgid "Name and Email" +#: ui/property_editor.py:111 ui/revert.py:129 +msgid "Status" msgstr "" -#: ui/xml/dialogs/error_notification.xml.h:1 -msgid "RabbitVCS Error" +#: ui/property_editor.py:189 +msgid "Unable to set new value for property." msgstr "" -#: ui/xml/dialogs/error_notification.xml.h:2 -msgid "RabbitVCS Error" +#: ui/commit.py:80 ui/revert.py:62 ui/revert.py:128 ui/markresolved.py:61 +#: ui/add.py:71 ui/unlock.py:61 ui/action.py:122 ui/browser.py:89 +#: ui/lock.py:70 ui/stage.py:63 ui/log.py:348 ui/log.py:586 ui/unstage.py:63 +msgid "Path" msgstr "" -#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:1 -msgid "Please provide your ssl certification file" +#: ui/commit.py:80 ui/revert.py:62 ui/revert.py:128 ui/markresolved.py:61 +#: ui/add.py:71 ui/unlock.py:61 ui/lock.py:70 ui/stage.py:63 ui/unstage.py:63 +msgid "Extension" msgstr "" -#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:2 -msgid "Path:" +#: ui/commit.py:81 ui/revert.py:63 ui/markresolved.py:62 +msgid "Text Status" msgstr "" -#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:3 -#: ui/xml/dialogs/certificate.xml.h:9 -msgid "Realm:" +#: ui/commit.py:81 ui/revert.py:63 ui/markresolved.py:62 +msgid "Property Status" msgstr "" -#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:4 -msgid "SSL Client Certification" +#: ui/commit.py:131 ui/add.py:97 ui/unlock.py:109 ui/lock.py:114 +#, python-format +msgid "Found %d item(s)" msgstr "" -#: ui/xml/dialogs/ssl_client_cert_prompt.xml.h:5 -msgid "Save Authentication" +#: ui/commit.py:308 ui/commit.py:361 ui/commit.py:424 +msgid "Running Commit Command..." msgstr "" -#: ui/xml/dialogs/previous_messages.xml.h:2 -msgid "Previous Messages" +#: ui/commit.py:314 ui/commit.py:370 ui/commit.py:433 +msgid "Completed Commit" msgstr "" -#: ui/xml/dialogs/certificate.xml.h:1 -msgid "Certificate Details" +#: ui/commit.py:387 +msgid "Close Branch" msgstr "" -#: ui/xml/dialogs/certificate.xml.h:2 -msgid "Accept Forever" +#: ui/revert.py:50 ui/revert.py:103 ui/revert.py:115 ui/revert.py:168 +#: util/contextmenuitems.py:478 +msgid "Revert" msgstr "" -#: ui/xml/dialogs/certificate.xml.h:3 -msgid "Accept Once" +#: ui/revert.py:104 ui/revert.py:169 +msgid "Running Revert Command..." msgstr "" -#: ui/xml/dialogs/certificate.xml.h:4 -msgid "Check Certificate" +#: ui/revert.py:106 ui/revert.py:171 +msgid "Completed Revert" msgstr "" -#: ui/xml/dialogs/certificate.xml.h:5 -msgid "Deny" +#: ui/settings.py:45 +msgid "There was an error communicating with the status checker service." msgstr "" -#: ui/xml/dialogs/certificate.xml.h:6 -msgid "Fingerprint:" +#: ui/settings.py:59 +msgid "English" msgstr "" -#: ui/xml/dialogs/certificate.xml.h:8 -msgid "Issuer:" +#: ui/settings.py:119 +msgid "Config file:" msgstr "" -#: ui/xml/dialogs/certificate.xml.h:10 -msgid "Valid:" +#: ui/settings.py:297 +msgid "Select a program" msgstr "" -#: ui/xml/dialogs/confirmation.xml.h:1 ui/dialog.py:297 -msgid "Are you sure you want to continue?" +#: ui/settings.py:306 +msgid "Are you sure you want to clear your repository paths?" msgstr "" -#: ui/xml/dialogs/confirmation.xml.h:2 -msgid "Confirmation" +#: ui/settings.py:313 +msgid "Repository paths cleared" msgstr "" -#: ui/xml/clean.xml.h:1 -msgid "Clean your Repository" +#: ui/settings.py:317 +msgid "Are you sure you want to clear your previous messages?" msgstr "" -#: ui/xml/clean.xml.h:2 ui/clean.py:75 util/contextmenuitems.py:675 -msgid "Clean" +#: ui/settings.py:324 +msgid "Previous messages cleared" msgstr "" -#: ui/xml/clean.xml.h:3 -msgid "Dry run" +#: ui/settings.py:328 +msgid "Are you sure you want to clear your authentication information?" msgstr "" -#: ui/xml/clean.xml.h:4 -msgid "Force" +#: ui/settings.py:345 +msgid "Authentication information cleared" msgstr "" -#: ui/xml/clean.xml.h:5 -msgid "Remove directories" +#: ui/markresolved.py:48 ui/markresolved.py:102 util/contextmenuitems.py:484 +msgid "Mark as Resolved" msgstr "" -#: ui/xml/clean.xml.h:6 -msgid "Remove ignored files, too" +#: ui/markresolved.py:103 +msgid "Running Resolved Command..." msgstr "" -#: ui/xml/clean.xml.h:7 -msgid "Remove only ignored files" +#: ui/markresolved.py:106 +msgid "Completed Mark as Resolved" msgstr "" -#: ui/xml/clean.xml.h:8 -msgid "Remove untracked files from the working tree" +#: ui/__init__.py:55 +msgid "" +"You must specify a version control system using the --vcs [svn|git] option" msgstr "" -#: ui/xml/browser.xml.h:1 -msgid "Load/Refresh" +#: ui/add.py:179 ui/add.py:204 +msgid "Running Add Command..." msgstr "" -#: ui/xml/browser.xml.h:2 util/contextmenuitems.py:367 -msgid "Repository Browser" +#: ui/add.py:181 ui/add.py:206 +msgid "Completed Add" msgstr "" -#: ui/xml/browser.xml.h:4 -msgid "URL:" +#: ui/relocate.py:77 +msgid "The from and to url fields are both required." msgstr "" -#: ui/xml/update.xml.h:2 ui/xml/reset.xml.h:4 -msgid "Revision" +#: ui/relocate.py:88 +msgid "Running Relocate Command..." msgstr "" -#: ui/xml/update.xml.h:3 -msgid "Omit Externals" +#: ui/relocate.py:95 +msgid "Completed Relocate" msgstr "" -#: ui/xml/update.xml.h:5 -msgid "Rollback to specified revision number" +#: ui/property_page.py:146 +msgid "Repository URL" msgstr "" -#: ui/xml/cleanup.xml.h:1 ui/cleanup.py:56 -msgid "Cleaning Up..." +#: ui/tags.py:62 +msgid "Tag Manager" msgstr "" -#: ui/xml/cleanup.xml.h:2 -msgid "" -"Cleanup Requested....\n" -"\n" -"Begin working copy cleanup?" +#: ui/tags.py:63 +msgid "Tags" msgstr "" -#: ui/xml/git-update.xml.h:3 -msgid "Update Local Repository" +#: ui/tags.py:74 +msgid "Tag" msgstr "" -#: ui/xml/reset.xml.h:2 -msgid "Path" +#: ui/tags.py:145 ui/tags.py:284 +msgid "Save" msgstr "" -#: ui/xml/reset.xml.h:3 -msgid "Reset your Repository" +#: ui/tags.py:153 +msgid "Tagger:" msgstr "" -#: ui/xml/reset.xml.h:5 -msgid "" -"Hard - Matches the working tree and index to that of the \n" -"tree being switched to" +#: ui/tags.py:230 ui/remotes.py:128 +#, python-format +msgid "Are you sure you want to delete %s?" msgstr "" -#: ui/xml/reset.xml.h:7 -msgid "" -"Merge - Resets the index to match the tree recorded by the named " -"commit,\n" -"and updates the files that are different between the named commit\n" -"and the current commit in the working tree" +#: ui/tags.py:275 +msgid "Add Tag" msgstr "" -#: ui/xml/reset.xml.h:10 -msgid "Mixed - Reset the index but not the working tree" +#: ui/tags.py:293 +msgid "Tag Detail" msgstr "" -#: ui/xml/reset.xml.h:11 -msgid "" -"Soft - Does not touch the index file or working tree at all, \n" -"but requires them to be in good working order" +#: ui/ignore.py:100 +msgid "Ignore file:" msgstr "" -#: ui/xml/reset.xml.h:13 -msgid "None" +#: ui/import.py:40 +#, python-format +msgid "Import - %s" msgstr "" -#: ui/xml/reset.xml.h:14 ui/reset.py:105 util/contextmenuitems.py:679 -msgid "Reset" +#: ui/import.py:68 +msgid "The repository URL field is required." msgstr "" -#: ui/xml/reset.xml.h:15 -msgid "Reset current HEAD to specified state." +#: ui/import.py:81 +msgid "Running Import Command..." msgstr "" -#: ui/xml/annotate.xml.h:1 -msgid "From Revision" +#: ui/import.py:89 +msgid "Completed Import" msgstr "" -#: ui/xml/annotate.xml.h:2 -msgid "To Revision" +#: ui/unlock.py:48 ui/unlock.py:127 +msgid "Unlock" msgstr "" -#: ui/xml/annotate.xml.h:3 -msgid "Annotate" +#: ui/unlock.py:128 +msgid "Running Unlock Command..." msgstr "" -#: ui/annotate.py:57 -msgid "Cannot annotate a directory" +#: ui/unlock.py:131 +msgid "Completed Unlock" msgstr "" -#: ui/annotate.py:63 +#: ui/properties.py:55 #, python-format -msgid "Annotate - %s" -msgstr "" - -#: ui/annotate.py:127 ui/annotate.py:228 -msgid "Line" +msgid "Properties - %s" msgstr "" -#: ui/annotate.py:128 ui/annotate.py:229 -msgid "Text" +#: ui/properties.py:179 +msgid "There was a problem saving your properties." msgstr "" -#: ui/annotate.py:143 -msgid "The from revision field must be an integer" +#: ui/action.py:122 ui/log.py:348 ui/log.py:586 +msgid "Action" msgstr "" -#: ui/cleanup.py:55 util/contextmenuitems.py:497 -msgid "Cleanup" +#: ui/action.py:122 +msgid "Mime Type" msgstr "" -#: ui/cleanup.py:58 -msgid "Completed Cleanup" +#: ui/action.py:378 +msgid "Finished" msgstr "" -#: ui/export.py:45 ui/export.py:124 +#: ui/action.py:382 #, python-format -msgid "Export - %s" +msgid "%s - Finished" msgstr "" -#: ui/export.py:72 ui/export.py:141 ui/clone.py:57 -msgid "The repository URL and destination path are both required fields." +#: ui/action.py:405 +msgid "Log Message" msgstr "" -#: ui/export.py:92 ui/export.py:161 -msgid "Export" +#: ui/rename.py:49 +msgid "The requested file or folder does not exist." msgstr "" -#: ui/export.py:93 ui/export.py:162 -msgid "Running Export Command..." +#: ui/rename.py:53 ui/rename.py:85 ui/rename.py:114 ui/browser.py:476 +msgid "Rename" msgstr "" - -#: ui/export.py:104 ui/export.py:170 -msgid "Completed Export" + +#: ui/rename.py:53 ui/browser.py:476 +msgid "New Name:" msgstr "" -#: ui/action.py:118 -msgid "Mime Type" +#: ui/rename.py:61 +msgid "The new name field is required" msgstr "" -#: ui/action.py:355 -msgid "Finished" +#: ui/rename.py:86 ui/rename.py:115 +msgid "Running Rename Command..." msgstr "" -#: ui/action.py:359 -#, python-format -msgid "%s - Finished" +#: ui/rename.py:92 ui/rename.py:121 +msgid "Completed Rename" msgstr "" -#: ui/action.py:382 -msgid "Log Message" +#: ui/clone.py:47 ui/clone.py:65 util/contextmenuitems.py:661 +msgid "Clone" msgstr "" -#: ui/updateto.py:82 -msgid "Rollback To Revision" +#: ui/clone.py:66 +msgid "Running Clone Command..." msgstr "" -#: ui/updateto.py:83 -msgid "Rolling Back..." +#: ui/clone.py:73 +msgid "Completed Clone" msgstr "" -#: ui/updateto.py:91 -msgid "Completed Rollback" +#: ui/browser.py:89 +msgid "Size" msgstr "" -#: ui/updateto.py:93 -msgid "Update To Revision" +#: ui/browser.py:331 +msgid "Select" msgstr "" -#: ui/updateto.py:138 -msgid "Checkout" +#: ui/browser.py:352 +msgid "Create folder..." msgstr "" -#: ui/updateto.py:139 -#, python-format -msgid "Checking out %s..." +#: ui/browser.py:357 +msgid "Copy to..." msgstr "" -#: ui/updateto.py:145 -msgid "Completed Checkout" +#: ui/browser.py:362 +msgid "Copy URL to clipboard" msgstr "" -#: ui/reset.py:106 -msgid "Running Reset Command..." +#: ui/browser.py:367 +msgid "Move to..." msgstr "" -#: ui/reset.py:113 -msgid "Completed Reset" +#: ui/browser.py:537 +msgid "Where do you want to copy the selection?" msgstr "" -#: ui/properties.py:55 -#, python-format -msgid "Properties - %s" +#: ui/browser.py:538 ui/browser.py:567 +msgid "New Location:" msgstr "" -#: ui/properties.py:179 -msgid "There was a problem saving your properties." +#: ui/browser.py:566 +msgid "Where do you want to move the selection?" msgstr "" #: ui/dialog.py:36 @@ -1439,521 +1396,580 @@ msgid "Added a folder to the repository" msgstr "" -#: ui/diff.py:310 -msgid "View diff as side-by-side comparison" +#: ui/lock.py:71 +msgid "Locked" msgstr "" -#: ui/ignore.py:100 -msgid "Ignore file:" +#: ui/lock.py:122 +msgid "Yes" msgstr "" -#: ui/clean.py:76 -msgid "Running Clean Command..." +#: ui/lock.py:163 +msgid "Get Lock" msgstr "" -#: ui/clean.py:86 -msgid "Completed Clean" +#: ui/lock.py:164 +msgid "Running Lock Command..." msgstr "" -#: ui/tags.py:62 -msgid "Tag Manager" +#: ui/lock.py:173 +msgid "Completed Lock" msgstr "" -#: ui/tags.py:63 -msgid "Tags" +#: ui/stage.py:50 ui/stage.py:101 util/contextmenuitems.py:700 +msgid "Stage" msgstr "" -#: ui/tags.py:74 -msgid "Tag" +#: ui/stage.py:102 +msgid "Running Stage Command..." msgstr "" -#: ui/tags.py:145 ui/tags.py:284 -msgid "Save" +#: ui/stage.py:105 +msgid "Completed Stage" msgstr "" -#: ui/tags.py:153 -msgid "Tagger:" +#: ui/log.py:120 +#, python-format +msgid "Log - %s" msgstr "" -#: ui/tags.py:275 -msgid "Add Tag" +#: ui/log.py:349 +msgid "Copy From Path" msgstr "" -#: ui/tags.py:293 -msgid "Tag Detail" +#: ui/log.py:349 +msgid "Copy From Revision" msgstr "" -#: ui/create.py:51 -msgid "Repository successfully created" +#: ui/log.py:570 +msgid "Graph" msgstr "" -#: ui/create.py:53 -msgid "" -"There was an error creating the repository. Make sure the given folder is " -"empty." +#: ui/log.py:798 +msgid "View diff against working copy" msgstr "" -#: ui/create.py:67 util/contextmenuitems.py:640 -msgid "Initialize Repository" +#: ui/log.py:803 util/contextmenuitems.py:413 +msgid "View diff against previous revision" msgstr "" -#: ui/create.py:68 -msgid "Setting up repository..." +#: ui/log.py:808 +msgid "View diff between revisions" msgstr "" -#: ui/create.py:70 -msgid "Completed repository setup" +#: ui/log.py:813 +msgid "Compare with working copy" msgstr "" -#: ui/unstage.py:50 ui/unstage.py:101 util/contextmenuitems.py:689 -msgid "Unstage" +#: ui/log.py:818 util/contextmenuitems.py:431 +msgid "Compare with previous revision" msgstr "" -#: ui/unstage.py:102 -msgid "Running Unstage Command..." +#: ui/log.py:823 +msgid "Compare revisions" msgstr "" -#: ui/unstage.py:105 -msgid "Completed Unstage" +#: ui/log.py:829 +msgid "Show changes against previous revision" msgstr "" -#: ui/clone.py:47 ui/clone.py:65 util/contextmenuitems.py:645 -msgid "Clone" +#: ui/log.py:835 +msgid "Show changes between revisions" msgstr "" -#: ui/clone.py:66 -msgid "Running Clone Command..." +#: ui/log.py:840 +msgid "Update to this revision" msgstr "" -#: ui/clone.py:73 -msgid "Completed Clone" +#: ui/log.py:841 +msgid "Update the selected path to this revision" msgstr "" -#: ui/add.py:153 -msgid "Running Add Command..." +#: ui/log.py:846 ui/log.py:850 +msgid "Edit author..." msgstr "" -#: ui/add.py:155 -msgid "Completed Add" +#: ui/log.py:854 +msgid "Edit log message..." msgstr "" -#: ui/rename.py:49 -msgid "The requested file or folder does not exist." +#: ui/log.py:858 +msgid "Edit revision properties..." msgstr "" -#: ui/rename.py:61 -msgid "The new name field is required" +#: ui/log.py:1119 +msgid "Edit author" msgstr "" -#: ui/rename.py:86 ui/rename.py:115 -msgid "Running Rename Command..." +#: ui/log.py:1131 +msgid "Edit log message" msgstr "" -#: ui/rename.py:92 ui/rename.py:121 -msgid "Completed Rename" +#: ui/clean.py:76 +msgid "Running Clean Command..." msgstr "" -#: ui/__init__.py:55 -msgid "" -"You must specify a version control system using the --vcs [svn|git] option" +#: ui/clean.py:86 +msgid "Completed Clean" msgstr "" -#: ui/unlock.py:48 ui/unlock.py:127 -msgid "Unlock" +#: ui/updateto.py:83 +msgid "Rollback To Revision" msgstr "" -#: ui/unlock.py:128 -msgid "Running Unlock Command..." +#: ui/updateto.py:84 +msgid "Rolling Back..." msgstr "" -#: ui/unlock.py:131 -msgid "Completed Unlock" +#: ui/updateto.py:92 +msgid "Completed Rollback" +msgstr "" + +#: ui/updateto.py:94 +msgid "Update To Revision" +msgstr "" + +#: ui/updateto.py:120 +msgid "What revision/branch do you want to checkout?" +msgstr "" + +#: ui/updateto.py:141 +msgid "Checkout" +msgstr "" + +#: ui/updateto.py:142 +#, python-format +msgid "Checking out %s..." +msgstr "" + +#: ui/updateto.py:148 +msgid "Completed Checkout" +msgstr "" + +#: ui/cleanup.py:55 util/contextmenuitems.py:513 +msgid "Cleanup" +msgstr "" + +#: ui/cleanup.py:58 +msgid "Completed Cleanup" +msgstr "" + +#: ui/unstage.py:50 ui/unstage.py:101 util/contextmenuitems.py:705 +msgid "Unstage" +msgstr "" + +#: ui/unstage.py:102 +msgid "Running Unstage Command..." +msgstr "" + +#: ui/unstage.py:105 +msgid "Completed Unstage" +msgstr "" + +#: ui/remotes.py:59 +msgid "Remote Repository Manager" +msgstr "" + +#: ui/remotes.py:60 +msgid "Remote Repositories" +msgstr "" + +#: ui/remotes.py:66 +msgid "Host" +msgstr "" + +#: ui/diff.py:321 +msgid "View diff as side-by-side comparison" msgstr "" -#: util/contextmenuitems.py:292 +#: util/contextmenuitems.py:303 msgid "Debug" msgstr "" -#: util/contextmenuitems.py:297 +#: util/contextmenuitems.py:308 msgid "Bugs" msgstr "" -#: util/contextmenuitems.py:302 +#: util/contextmenuitems.py:313 msgid "Open Shell" msgstr "" -#: util/contextmenuitems.py:308 +#: util/contextmenuitems.py:319 msgid "Refresh Status" msgstr "" -#: util/contextmenuitems.py:313 +#: util/contextmenuitems.py:324 msgid "Debug Revert" msgstr "" -#: util/contextmenuitems.py:314 +#: util/contextmenuitems.py:325 msgid "Reverts everything it sees" msgstr "" -#: util/contextmenuitems.py:320 +#: util/contextmenuitems.py:331 msgid "Invalidate" msgstr "" -#: util/contextmenuitems.py:321 +#: util/contextmenuitems.py:332 msgid "Force an invalidate_extension_info() call" msgstr "" -#: util/contextmenuitems.py:327 +#: util/contextmenuitems.py:338 msgid "Add Emblem" msgstr "" -#: util/contextmenuitems.py:328 +#: util/contextmenuitems.py:339 msgid "Add an emblem" msgstr "" -#: util/contextmenuitems.py:334 +#: util/contextmenuitems.py:345 msgid "Checkout..." msgstr "" -#: util/contextmenuitems.py:335 +#: util/contextmenuitems.py:346 msgid "Check out a working copy" msgstr "" -#: util/contextmenuitems.py:341 +#: util/contextmenuitems.py:352 msgid "Update a working copy" msgstr "" -#: util/contextmenuitems.py:347 +#: util/contextmenuitems.py:358 msgid "Commit modifications to the repository" msgstr "" -#: util/contextmenuitems.py:357 +#: util/contextmenuitems.py:368 msgid "RabbitVCS SVN" msgstr "" -#: util/contextmenuitems.py:362 +#: util/contextmenuitems.py:373 msgid "RabbitVCS Git" msgstr "" -#: util/contextmenuitems.py:368 +#: util/contextmenuitems.py:378 +msgid "RabbitVCS Hg" +msgstr "" + +#: util/contextmenuitems.py:384 msgid "Browse a repository tree" msgstr "" -#: util/contextmenuitems.py:373 +#: util/contextmenuitems.py:389 msgid "Check for Modifications..." msgstr "" -#: util/contextmenuitems.py:374 +#: util/contextmenuitems.py:390 msgid "Check for modifications made to the repository" msgstr "" -#: util/contextmenuitems.py:379 +#: util/contextmenuitems.py:395 msgid "Diff Menu..." msgstr "" -#: util/contextmenuitems.py:380 +#: util/contextmenuitems.py:396 msgid "List of comparison options" msgstr "" -#: util/contextmenuitems.py:385 +#: util/contextmenuitems.py:401 msgid "View diff against base" msgstr "" -#: util/contextmenuitems.py:386 +#: util/contextmenuitems.py:402 msgid "View the modifications made to a file" msgstr "" -#: util/contextmenuitems.py:391 +#: util/contextmenuitems.py:407 msgid "View diff between files/folders" msgstr "" -#: util/contextmenuitems.py:392 +#: util/contextmenuitems.py:408 msgid "View the differences between two files" msgstr "" -#: util/contextmenuitems.py:398 +#: util/contextmenuitems.py:414 msgid "View the modifications made to a file since its last change" msgstr "" -#: util/contextmenuitems.py:403 +#: util/contextmenuitems.py:419 msgid "Compare with base" msgstr "" -#: util/contextmenuitems.py:404 +#: util/contextmenuitems.py:420 msgid "Compare with base using side-by-side comparison tool" msgstr "" -#: util/contextmenuitems.py:409 +#: util/contextmenuitems.py:425 msgid "Compare files/folders" msgstr "" -#: util/contextmenuitems.py:410 +#: util/contextmenuitems.py:426 msgid "Compare the differences between two items" msgstr "" -#: util/contextmenuitems.py:416 +#: util/contextmenuitems.py:432 msgid "Compare with previous revision using side-by-side comparison tool" msgstr "" -#: util/contextmenuitems.py:421 +#: util/contextmenuitems.py:437 msgid "Show Changes..." msgstr "" -#: util/contextmenuitems.py:422 +#: util/contextmenuitems.py:438 msgid "Show changes between paths and revisions" msgstr "" -#: util/contextmenuitems.py:427 +#: util/contextmenuitems.py:443 msgid "Show Log" msgstr "" -#: util/contextmenuitems.py:428 +#: util/contextmenuitems.py:444 msgid "Show a file's log information" msgstr "" -#: util/contextmenuitems.py:434 +#: util/contextmenuitems.py:450 msgid "Schedule items to be added to the repository" msgstr "" -#: util/contextmenuitems.py:439 +#: util/contextmenuitems.py:455 msgid "Add to ignore list" msgstr "" -#: util/contextmenuitems.py:444 +#: util/contextmenuitems.py:460 msgid "Update to revision..." msgstr "" -#: util/contextmenuitems.py:445 +#: util/contextmenuitems.py:461 msgid "Update a file to a specific revision" msgstr "" -#: util/contextmenuitems.py:450 +#: util/contextmenuitems.py:466 msgid "Rename..." msgstr "" -#: util/contextmenuitems.py:451 +#: util/contextmenuitems.py:467 msgid "Schedule an item to be renamed on the repository" msgstr "" -#: util/contextmenuitems.py:457 +#: util/contextmenuitems.py:473 msgid "Schedule an item to be deleted from the repository" msgstr "" -#: util/contextmenuitems.py:463 +#: util/contextmenuitems.py:479 msgid "Revert an item to its unmodified state" msgstr "" -#: util/contextmenuitems.py:469 +#: util/contextmenuitems.py:485 msgid "Mark a conflicted item as resolved" msgstr "" -#: util/contextmenuitems.py:474 +#: util/contextmenuitems.py:490 msgid "Restore" msgstr "" -#: util/contextmenuitems.py:475 +#: util/contextmenuitems.py:491 msgid "Restore a missing item" msgstr "" -#: util/contextmenuitems.py:479 +#: util/contextmenuitems.py:495 msgid "Relocate..." msgstr "" -#: util/contextmenuitems.py:480 +#: util/contextmenuitems.py:496 msgid "Relocate your working copy" msgstr "" -#: util/contextmenuitems.py:485 +#: util/contextmenuitems.py:501 msgid "Get Lock..." msgstr "" -#: util/contextmenuitems.py:486 +#: util/contextmenuitems.py:502 msgid "Locally lock items" msgstr "" -#: util/contextmenuitems.py:491 +#: util/contextmenuitems.py:507 msgid "Release Lock..." msgstr "" -#: util/contextmenuitems.py:492 +#: util/contextmenuitems.py:508 msgid "Release lock on an item" msgstr "" -#: util/contextmenuitems.py:498 +#: util/contextmenuitems.py:514 msgid "Clean up working copy" msgstr "" -#: util/contextmenuitems.py:503 +#: util/contextmenuitems.py:519 msgid "Export..." msgstr "" -#: util/contextmenuitems.py:504 +#: util/contextmenuitems.py:520 msgid "Export a working copy or repository with no versioning information" msgstr "" -#: util/contextmenuitems.py:517 +#: util/contextmenuitems.py:533 msgid "Create Repository here" msgstr "" -#: util/contextmenuitems.py:518 +#: util/contextmenuitems.py:534 msgid "Create a repository in a folder" msgstr "" -#: util/contextmenuitems.py:524 +#: util/contextmenuitems.py:540 msgid "Import an item into a repository" msgstr "" -#: util/contextmenuitems.py:533 +#: util/contextmenuitems.py:549 msgid "Branch/tag..." msgstr "" -#: util/contextmenuitems.py:534 +#: util/contextmenuitems.py:550 msgid "Copy an item to another location in the repository" msgstr "" -#: util/contextmenuitems.py:539 +#: util/contextmenuitems.py:555 msgid "Switch..." msgstr "" -#: util/contextmenuitems.py:540 +#: util/contextmenuitems.py:556 msgid "Change the repository location of a working copy" msgstr "" -#: util/contextmenuitems.py:545 +#: util/contextmenuitems.py:561 msgid "Merge..." msgstr "" -#: util/contextmenuitems.py:546 +#: util/contextmenuitems.py:562 msgid "A wizard with steps for merging" msgstr "" -#: util/contextmenuitems.py:551 +#: util/contextmenuitems.py:567 msgid "Annotate..." msgstr "" -#: util/contextmenuitems.py:552 +#: util/contextmenuitems.py:568 msgid "Annotate a file" msgstr "" -#: util/contextmenuitems.py:557 +#: util/contextmenuitems.py:573 msgid "Create Patch..." msgstr "" -#: util/contextmenuitems.py:558 +#: util/contextmenuitems.py:574 msgid "Creates a unified diff file with all changes you made" msgstr "" -#: util/contextmenuitems.py:563 +#: util/contextmenuitems.py:579 msgid "Apply Patch..." msgstr "" -#: util/contextmenuitems.py:564 +#: util/contextmenuitems.py:580 msgid "Applies a unified diff file to the working copy" msgstr "" -#: util/contextmenuitems.py:570 +#: util/contextmenuitems.py:586 msgid "View the properties of an item" msgstr "" -#: util/contextmenuitems.py:575 +#: util/contextmenuitems.py:591 msgid "Help" msgstr "" -#: util/contextmenuitems.py:576 +#: util/contextmenuitems.py:592 msgid "View help" msgstr "" -#: util/contextmenuitems.py:582 +#: util/contextmenuitems.py:598 msgid "View or change RabbitVCS settings" msgstr "" -#: util/contextmenuitems.py:588 +#: util/contextmenuitems.py:604 msgid "About RabbitVCS" msgstr "" -#: util/contextmenuitems.py:593 +#: util/contextmenuitems.py:609 msgid "Open" msgstr "" -#: util/contextmenuitems.py:594 +#: util/contextmenuitems.py:610 msgid "Open a file" msgstr "" -#: util/contextmenuitems.py:602 +#: util/contextmenuitems.py:618 msgid "Browse to" msgstr "" -#: util/contextmenuitems.py:603 +#: util/contextmenuitems.py:619 msgid "Browse to a file or folder" msgstr "" -#: util/contextmenuitems.py:608 +#: util/contextmenuitems.py:624 msgid "Revert property" msgstr "" -#: util/contextmenuitems.py:610 +#: util/contextmenuitems.py:626 msgid "Revert this property to its original state" msgstr "" -#: util/contextmenuitems.py:614 +#: util/contextmenuitems.py:630 msgid "Revert property (recursive)" msgstr "" -#: util/contextmenuitems.py:616 +#: util/contextmenuitems.py:632 msgid "Revert this property to its original state (recursive)" msgstr "" -#: util/contextmenuitems.py:621 +#: util/contextmenuitems.py:637 msgid "Delete property" msgstr "" -#: util/contextmenuitems.py:623 +#: util/contextmenuitems.py:639 msgid "Delete this property" msgstr "" -#: util/contextmenuitems.py:627 +#: util/contextmenuitems.py:643 msgid "Delete property (recursive)" msgstr "" -#: util/contextmenuitems.py:629 +#: util/contextmenuitems.py:645 msgid "Delete this property (recursive)" msgstr "" -#: util/contextmenuitems.py:634 +#: util/contextmenuitems.py:650 msgid "Edit details" msgstr "" -#: util/contextmenuitems.py:636 +#: util/contextmenuitems.py:652 msgid "Show and edit property details" msgstr "" -#: util/contextmenuitems.py:650 +#: util/contextmenuitems.py:666 msgid "Fetch/Pull" msgstr "" -#: util/contextmenuitems.py:655 +#: util/contextmenuitems.py:671 msgid "Push" msgstr "" -#: util/contextmenuitems.py:660 +#: util/contextmenuitems.py:676 msgid "Branches" msgstr "" -#: util/contextmenuitems.py:665 +#: util/contextmenuitems.py:681 msgid "Tags" msgstr "" -#: util/contextmenuitems.py:670 +#: util/contextmenuitems.py:686 msgid "Remotes" msgstr "" -#: util/contextmenuitems.py:694 +#: util/contextmenuitems.py:710 msgid "Edit conflicts" msgstr "" -#: util/contextmenuitems.py:720 +#: util/contextmenuitems.py:736 msgid "Ignore item by filename" msgstr "" -#: util/contextmenuitems.py:739 +#: util/contextmenuitems.py:755 msgid "Ignore item by file extension" msgstr "" diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/__init__.py rabbitvcs-0.15.2/rabbitvcs/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/__init__.py 2011-11-09 19:11:00.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/__init__.py 2012-09-23 21:12:55.000000000 +0000 @@ -31,7 +31,7 @@ except Exception, e: pass -version = "0.15.0.5" +version = "0.15.2" APP_NAME = "RabbitVCS" TEMP_DIR_PREFIX = "rabbitvcs-" LOCALE_DIR = "%s/locale" % os.path.dirname(os.path.dirname(os.path.realpath(__file__))) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/services/checkerservice.py rabbitvcs-0.15.2/rabbitvcs/services/checkerservice.py --- rabbitvcs-0.15.0.5/rabbitvcs/services/checkerservice.py 2011-10-17 23:18:06.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/services/checkerservice.py 2012-09-23 21:12:55.000000000 +0000 @@ -245,6 +245,8 @@ If there is not already a DBUS object with the path "OBJECT_PATH", we create one by starting a new Python process that runs this file. """ + # We need this to for the client to be able to do asynchronous calls + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) self.session_bus = dbus.SessionBus() self.decoder = simplejson.JSONDecoder(object_hook=decode_status) self.status_checker = None diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/__init__.py rabbitvcs-0.15.2/rabbitvcs/ui/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/__init__.py 2011-10-17 19:05:06.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/__init__.py 2012-09-23 21:12:56.000000000 +0000 @@ -123,6 +123,17 @@ GtkBuilderWidgetWrapper.__init__(self, *args, **kwargs) self.do_gtk_quit = False + # On OSX, there is a glitch where GTK applications do not always come to the front + # when a launched (and methods like 'present()' don't appear to work correctly). + # So until GTK on OSX is fixed let's work around this issue... + import platform + if platform.system() == 'Darwin': + try: + import subprocess + subprocess.Popen('osascript -e "tell application \\"Python\\" to activate"', shell=True) + except: + pass + def hide(self): window = self.get_widget(self.gtkbuilder_id) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/action.py rabbitvcs-0.15.2/rabbitvcs/ui/action.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/action.py 2011-10-18 19:04:36.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/action.py 2012-09-23 21:12:56.000000000 +0000 @@ -44,6 +44,9 @@ gtk.gdk.threads_init() +from rabbitvcs.util.log import Log +log = Log("rabbitvcs.ui.action") + class VCSNotifier(InterfaceView): """ Provides a base class to handle threaded/gtk_unsafe calls to our vcs @@ -87,6 +90,7 @@ @gtk_unsafe def exception_callback(self, e): + log.exception(e) MessageBox(str(e)) class MessageCallbackNotifier(VCSNotifier): @@ -254,6 +258,7 @@ @gtk_unsafe def exception_callback(self, e): if not self.was_canceled_by_user: + log.exception(e) MessageBox(str(e)) class VCSAction(threading.Thread): @@ -313,6 +318,24 @@ self.pbar_ticks = num + def set_progress_fraction(self, fraction): + """ + An alternative method to access the progress bar directly. + + @type percentage: int + @param percentage: The percentage value to set the progress bar. + + """ + + if self.has_notifier: + if not self.client_in_same_thread: + gtk.gdk.threads_enter() + + self.notification.pbar.update(fraction) + + if not self.client_in_same_thread: + gtk.gdk.threads_leave() + def set_header(self, header): self.notification.set_header(header) @@ -710,6 +733,48 @@ self.client_in_same_thread = True self.client = client + + VCSAction.__init__(self, client, register_gtk_quit, notification, + run_in_thread) + + self.client.set_callback_notify(self.notify) + self.client.set_callback_progress_update(self.set_progress_fraction) + self.client.set_callback_get_user(self.get_user) + self.client.set_callback_get_cancel(self.cancel) + + def notify(self, data): + if self.has_notifier: + if data: + self.conflict_filter(data) + if isinstance(data, dict): + self.notification.append([ + data["action"], + data["path"], + data["mime_type"] + ]) + else: + self.notification.append(["", data, ""]) + + def get_user(self): + gtk.gdk.threads_enter() + dialog = rabbitvcs.ui.dialog.NameEmailPrompt() + result = dialog.run() + gtk.gdk.threads_leave() + + return result + + def conflict_filter(self, data): + if str(data).startswith("ERROR:"): + path = data[27:] + rabbitvcs.util.helper.launch_ui_window("editconflicts", [path], block=True) + +class MercurialAction(VCSAction): + def __init__(self, client, register_gtk_quit=False, notification=True, + run_in_thread=True): + + self.client_in_same_thread = True + + self.client = client self.client.set_callback_notify(self.notify) self.client.set_callback_get_user(self.get_user) self.client.set_callback_get_cancel(self.cancel) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/add.py rabbitvcs-0.15.2/rabbitvcs/ui/add.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/add.py 2010-12-25 02:33:00.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/add.py 2012-09-23 21:12:56.000000000 +0000 @@ -62,9 +62,8 @@ self.base_dir = base_dir self.last_row_clicked = None self.vcs = rabbitvcs.vcs.VCS() - self.svn = self.vcs.svn() self.items = [] - self.statuses = self.svn.STATUSES_FOR_ADD + self.statuses = self.vcs.statuses_for_add(paths) self.files_table = rabbitvcs.ui.widget.Table( self.get_widget("files_table"), [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, @@ -137,6 +136,33 @@ def on_cancel_clicked(self, widget): self.close() + def on_select_all_toggled(self, widget): + self.TOGGLE_ALL = not self.TOGGLE_ALL + for row in self.files_table.get_items(): + row[0] = self.TOGGLE_ALL + + def on_files_table_row_activated(self, treeview, event, col): + paths = self.files_table.get_selected_row_items(1) + rabbitvcs.util.helper.launch_diff_tool(*paths) + + def on_files_table_key_event(self, treeview, data=None): + if gtk.gdk.keyval_name(data.keyval) == "Delete": + self.delete_items(treeview, data) + + def on_files_table_mouse_event(self, treeview, data=None): + if data is not None and data.button == 3: + self.show_files_table_popup_menu(treeview, data) + + def show_files_table_popup_menu(self, treeview, data): + paths = self.files_table.get_selected_row_items(1) + GtkFilesContextMenu(self, data, self.base_dir, paths).show() + +class SVNAdd(Add): + def __init__(self, paths, base_dir=None): + Add.__init__(self, paths, base_dir) + + self.svn = self.vcs.svn() + def on_ok_clicked(self, widget): items = self.files_table.get_activated_rows(1) if not items: @@ -156,26 +182,39 @@ self.action.append(self.action.finish) self.action.start() - def on_select_all_toggled(self, widget): - self.TOGGLE_ALL = not self.TOGGLE_ALL - for row in self.files_table.get_items(): - row[0] = self.TOGGLE_ALL - - def on_files_table_row_activated(self, treeview, event, col): - paths = self.files_table.get_selected_row_items(1) - rabbitvcs.util.helper.launch_diff_tool(*paths) +class GitAdd(Add): + def __init__(self, paths, base_dir=None): + Add.__init__(self, paths, base_dir) + + self.git = self.vcs.git(paths[0]) + + def on_ok_clicked(self, widget): + items = self.files_table.get_activated_rows(1) + if not items: + self.close() + return - def on_files_table_key_event(self, treeview, data=None): - if gtk.gdk.keyval_name(data.keyval) == "Delete": - self.delete_items(treeview, data) + self.hide() - def on_files_table_mouse_event(self, treeview, data=None): - if data is not None and data.button == 3: - self.show_files_table_popup_menu(treeview, data) + self.action = rabbitvcs.ui.action.GitAction( + self.git, + register_gtk_quit=self.gtk_quit_is_set() + ) + self.action.append(self.action.set_header, _("Add")) + self.action.append(self.action.set_status, _("Running Add Command...")) + self.action.append(self.git.add, items) + self.action.append(self.action.set_status, _("Completed Add")) + self.action.append(self.action.finish) + self.action.start() - def show_files_table_popup_menu(self, treeview, data): - paths = self.files_table.get_selected_row_items(1) - GtkFilesContextMenu(self, data, self.base_dir, paths).show() +classes_map = { + rabbitvcs.vcs.VCS_SVN: SVNAdd, + rabbitvcs.vcs.VCS_GIT: GitAdd +} + +def add_factory(paths, base_dir): + guess = rabbitvcs.vcs.guess (paths[0]) + return classes_map[guess["vcs"]](paths,base_dir) class AddQuiet: def __init__(self, paths): @@ -199,6 +238,6 @@ if options.quiet: AddQuiet(paths) else: - window = Add(paths, options.base_dir) + window = add_factory(paths,options.base_dir)#Add(paths, options.base_dir) window.register_gtk_quit() gtk.main() diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/branches.py rabbitvcs-0.15.2/rabbitvcs/ui/branches.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/branches.py 2010-12-29 15:51:16.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/branches.py 2012-09-23 21:12:57.000000000 +0000 @@ -204,7 +204,7 @@ self.show_add() def on_delete_clicked(self, widget): - selected = self.items_treeview.get_selected_row_items(1) + selected = self.items_treeview.get_selected_row_items(0) confirm = rabbitvcs.ui.dialog.Confirmation(_("Are you sure you want to delete %s?" % ", ".join(selected))) result = confirm.run() @@ -267,7 +267,7 @@ revision = "HEAD" if self.revision: - revision = unicode(self.revision) + revision = unicode(self.git.get_active_branch().name) self.items_treeview.unselect_all() self.branch_entry.set_text("") diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/commit.py rabbitvcs-0.15.2/rabbitvcs/ui/commit.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/commit.py 2011-06-11 18:56:20.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/commit.py 2012-09-23 21:12:56.000000000 +0000 @@ -52,9 +52,10 @@ changes to a repository. Pass it a list of local paths to commit. """ + SETTINGS = rabbitvcs.util.settings.SettingsManager() TOGGLE_ALL = False - SHOW_UNVERSIONED = True + SHOW_UNVERSIONED = SETTINGS.get("general", "show_unversioned_files") # This keeps track of any changes that the user has made to the row # selections @@ -72,12 +73,42 @@ self.base_dir = base_dir self.vcs = rabbitvcs.vcs.VCS() + self.files_table = rabbitvcs.ui.widget.Table( + self.get_widget("files_table"), + [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, + gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING], + [rabbitvcs.ui.widget.TOGGLE_BUTTON, _("Path"), _("Extension"), + _("Text Status"), _("Property Status")], + filters=[{ + "callback": rabbitvcs.ui.widget.path_filter, + "user_data": { + "base_dir": base_dir, + "column": 1 + } + }], + callbacks={ + "row-activated": self.on_files_table_row_activated, + "mouse-event": self.on_files_table_mouse_event, + "key-event": self.on_files_table_key_event, + "row-toggled": self.on_files_table_toggle_event + }, + flags={ + "sortable": True, + "sort_on": 1 + } + ) + self.files_table.allow_multiple() + + self.message = rabbitvcs.ui.widget.TextView( + self.get_widget("message"), + (message and message or "") + ) + self.paths = [] for path in paths: if self.vcs.is_in_a_or_a_working_copy(path): self.paths.append(path) - # # Helper functions # @@ -166,14 +197,28 @@ self.changes.clear() for row in self.files_table.get_items(): row[0] = self.TOGGLE_ALL + self.changes[row[1]] = self.TOGGLE_ALL def on_toggle_show_unversioned_toggled(self, widget, data=None): + self.SHOW_UNVERSIONED = not self.SHOW_UNVERSIONED + self.populate_files_table() + # Save this preference for future commits. + if self.SETTINGS.get("general", "show_unversioned_files") != self.SHOW_UNVERSIONED: + self.SETTINGS.set( + "general", "show_unversioned_files", + self.SHOW_UNVERSIONED + ) + self.SETTINGS.write() + def on_files_table_row_activated(self, treeview, event, col): paths = self.files_table.get_selected_row_items(1) - rabbitvcs.util.helper.launch_diff_tool(*paths) + pathrev1 = rabbitvcs.util.helper.create_path_revision_string(paths[0], "base") + pathrev2 = rabbitvcs.util.helper.create_path_revision_string(paths[0], "working") + proc = rabbitvcs.util.helper.launch_ui_window("diff", ["-s", pathrev1, pathrev2]) + self.rescan_after_process_exit(proc, paths) def on_files_table_key_event(self, treeview, data=None): if gtk.gdk.keyval_name(data.keyval) == "Delete": @@ -189,50 +234,6 @@ if message is not None: self.message.set_text(message) -class SVNCommit(Commit): - def __init__(self, paths, base_dir=None, message=None): - Commit.__init__(self, paths, base_dir, message) - - self.get_widget("commit_to_box").show() - - self.files_table = rabbitvcs.ui.widget.Table( - self.get_widget("files_table"), - [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, - gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING], - [rabbitvcs.ui.widget.TOGGLE_BUTTON, _("Path"), _("Extension"), - _("Text Status"), _("Property Status")], - filters=[{ - "callback": rabbitvcs.ui.widget.path_filter, - "user_data": { - "base_dir": base_dir, - "column": 1 - } - }], - callbacks={ - "row-activated": self.on_files_table_row_activated, - "mouse-event": self.on_files_table_mouse_event, - "key-event": self.on_files_table_key_event, - "row-toggled": self.on_files_table_toggle_event - }, - flags={ - "sortable": True, - "sort_on": 1 - } - ) - self.files_table.allow_multiple() - - self.message = rabbitvcs.ui.widget.TextView( - self.get_widget("message"), - (message and message or "") - ) - self.get_widget("to").set_text( - self.vcs.svn().get_repo_url(self.base_dir) - ) - - self.items = None - if len(self.paths): - self.initialize_items() - def populate_files_table(self): """ First clears and then populates the files table based on the items @@ -258,6 +259,20 @@ item.simple_metadata_status() ]) +class SVNCommit(Commit): + def __init__(self, paths, base_dir=None, message=None): + Commit.__init__(self, paths, base_dir, message) + + self.get_widget("commit_to_box").show() + + self.get_widget("to").set_text( + self.vcs.svn().get_repo_url(self.base_dir) + ) + + self.items = None + if len(self.paths): + self.initialize_items() + def on_ok_clicked(self, widget, data=None): items = self.files_table.get_activated_rows(1) self.hide() @@ -310,65 +325,10 @@ self.git = self.vcs.git(paths[0]) - self.files_table = rabbitvcs.ui.widget.Table( - self.get_widget("files_table"), - [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, - gobject.TYPE_STRING, gobject.TYPE_STRING], - [rabbitvcs.ui.widget.TOGGLE_BUTTON, _("Path"), _("Extension"), - _("Status")], - filters=[{ - "callback": rabbitvcs.ui.widget.path_filter, - "user_data": { - "base_dir": base_dir, - "column": 1 - } - }], - callbacks={ - "row-activated": self.on_files_table_row_activated, - "mouse-event": self.on_files_table_mouse_event, - "key-event": self.on_files_table_key_event, - "row-toggled": self.on_files_table_toggle_event - }, - flags={ - "sortable": True, - "sort_on": 1 - } - ) - self.files_table.allow_multiple() - - self.message = rabbitvcs.ui.widget.TextView( - self.get_widget("message"), - (message and message or "") - ) - self.items = None if len(self.paths): self.initialize_items() - def populate_files_table(self): - """ - First clears and then populates the files table based on the items - retrieved in self.load() - - """ - - self.files_table.clear() - for item in self.items: - if item.path in self.changes: - checked = self.changes[item.path] - else: - checked = self.should_item_be_activated(item) - - if not self.should_item_be_visible(item): - continue - - self.files_table.append([ - checked, - item.path, - rabbitvcs.util.helper.get_file_extension(item.path), - item.simple_content_status() - ]) - def on_ok_clicked(self, widget, data=None): items = self.files_table.get_activated_rows(1) self.hide() @@ -416,9 +376,72 @@ self.changes[row[1]] = row[col] +class MercurialCommit(Commit): + def __init__(self, paths, base_dir=None, message=None): + Commit.__init__(self, paths, base_dir, message) + + self.mercurial = self.vcs.mercurial(paths[0]) + + options_box = self.get_widget("options_box") + + self.close_branch = gtk.CheckButton(_("Close Branch")) + options_box.pack_start(self.close_branch, False, False, 0) + self.close_branch.show() + + self.items = None + if len(self.paths): + self.initialize_items() + + def on_ok_clicked(self, widget, data=None): + items = self.files_table.get_activated_rows(1) + self.hide() + + if len(items) == 0: + self.close() + return + + staged = 0 + for item in items: + try: + status = self.vcs.status(item, summarize=False).simple_content_status() + if status == rabbitvcs.vcs.status.status_missing: + self.mercurial.revert([item]) + self.mercurial.remove(item) + else: + self.mercurial.add(item) + staged += 1 + except Exception, e: + log.exception(e) + + ticks = staged + len(items)*2 + + self.action = rabbitvcs.ui.action.MercurialAction( + self.mercurial, + register_gtk_quit=self.gtk_quit_is_set() + ) + self.action.set_pbar_ticks(ticks) + self.action.append(self.action.set_header, _("Commit")) + self.action.append(self.action.set_status, _("Running Commit Command...")) + self.action.append( + rabbitvcs.util.helper.save_log_message, + self.message.get_text() + ) + self.action.append( + self.mercurial.commit, + self.message.get_text() + ) + self.action.append(self.action.set_status, _("Completed Commit")) + self.action.append(self.action.finish) + self.action.start() + + def on_files_table_toggle_event(self, row, col): + # Adds path: True/False to the dict + self.changes[row[1]] = row[col] + classes_map = { rabbitvcs.vcs.VCS_SVN: SVNCommit, - rabbitvcs.vcs.VCS_GIT: GitCommit + rabbitvcs.vcs.VCS_GIT: GitCommit, + rabbitvcs.vcs.VCS_MERCURIAL: MercurialCommit } def commit_factory(paths, base_dir=None, message=None): diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/createpatch.py rabbitvcs-0.15.2/rabbitvcs/ui/createpatch.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/createpatch.py 2011-11-04 16:33:31.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/createpatch.py 2012-09-23 21:12:56.000000000 +0000 @@ -60,6 +60,7 @@ @param paths: A list of local paths. """ + InterfaceView.__init__(self, "commit", "Commit") # Modify the Commit window to what we need for Create Patch @@ -73,6 +74,40 @@ self.base_dir = base_dir self.vcs = rabbitvcs.vcs.VCS() self.activated_cache = {} + + self.common = rabbitvcs.util.helper.get_common_directory(paths) + + if not self.vcs.is_versioned(self.common): + rabbitvcs.ui.dialog.MessageBox(_("The given path is not a working copy")) + raise SystemExit() + + self.files_table = rabbitvcs.ui.widget.Table( + self.get_widget("files_table"), + [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, + gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING], + [rabbitvcs.ui.widget.TOGGLE_BUTTON, _("Path"), _("Extension"), + _("Text Status"), _("Property Status")], + filters=[{ + "callback": rabbitvcs.ui.widget.path_filter, + "user_data": { + "base_dir": base_dir, + "column": 1 + } + }], + callbacks={ + "row-activated": self.on_files_table_row_activated, + "mouse-event": self.on_files_table_mouse_event, + "key-event": self.on_files_table_key_event + }, + flags={ + "sortable": True, + "sort_on": 1 + } + ) + self.files_table.allow_multiple() + + self.items = None + self.initialize_items() # # Helper functions @@ -105,35 +140,6 @@ CreatePatch.__init__(self, paths, base_dir) self.svn = self.vcs.svn() - self.common = rabbitvcs.util.helper.get_common_directory(paths) - - if not self.svn.get_versioned_path(self.common): - rabbitvcs.ui.dialog.MessageBox(_("The given path is not a working copy")) - raise SystemExit() - - self.files_table = rabbitvcs.ui.widget.Table( - self.get_widget("files_table"), - [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, - gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING], - [rabbitvcs.ui.widget.TOGGLE_BUTTON, _("Path"), _("Extension"), - _("Text Status"), _("Property Status")], - filters=[{ - "callback": rabbitvcs.ui.widget.path_filter, - "user_data": { - "base_dir": base_dir, - "column": 1 - } - }], - callbacks={ - "row-activated": self.on_files_table_row_activated, - "mouse-event": self.on_files_table_mouse_event, - "key-event": self.on_files_table_key_event - } - ) - self.files_table.allow_multiple() - - self.items = None - self.initialize_items() # # Event handlers @@ -201,39 +207,6 @@ CreatePatch.__init__(self, paths, base_dir) self.git = self.vcs.git(paths[0]) - self.common = rabbitvcs.util.helper.get_common_directory(paths) - - if not self.vcs.is_versioned(self.common): - rabbitvcs.ui.dialog.MessageBox(_("The given path is not a working copy")) - raise SystemExit() - - self.files_table = rabbitvcs.ui.widget.Table( - self.get_widget("files_table"), - [gobject.TYPE_BOOLEAN, rabbitvcs.ui.widget.TYPE_PATH, - gobject.TYPE_STRING, gobject.TYPE_STRING], - [rabbitvcs.ui.widget.TOGGLE_BUTTON, _("Path"), _("Extension"), - _("Status")], - filters=[{ - "callback": rabbitvcs.ui.widget.path_filter, - "user_data": { - "base_dir": base_dir, - "column": 1 - } - }], - callbacks={ - "row-activated": self.on_files_table_row_activated, - "mouse-event": self.on_files_table_mouse_event, - "key-event": self.on_files_table_key_event - }, - flags={ - "sortable": True, - "sort_on": 1 - } - ) - self.files_table.allow_multiple() - - self.items = None - self.initialize_items() # # Event handlers diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/dialog.py rabbitvcs-0.15.2/rabbitvcs/ui/dialog.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/dialog.py 2011-10-20 14:40:14.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/dialog.py 2012-09-23 21:12:56.000000000 +0000 @@ -229,8 +229,25 @@ self.save_name = name self.save_value = value - self.name = self.get_widget("property_name") - self.name.set_text(name) + self.name = rabbitvcs.ui.widget.ComboBox( + self.get_widget("property_name"), + [ # default svn properties + 'svn:author', + 'svn:autoversioned', + 'svn:date', + 'svn:eol-style', + 'svn:executable', + 'svn:externals', + 'svn:ignore', + 'svn:keywords', + 'svn:log', + 'svn:mergeinfo', + 'svn:mime-type', + 'svn:needs-lock', + 'svn:special', + ] + ) + self.name.set_child_text(name) self.value = rabbitvcs.ui.widget.TextView( self.get_widget("property_value"), @@ -251,7 +268,7 @@ return (self.save_name, self.save_value, self.recurse.get_active()) def save(self): - self.save_name = self.name.get_text() + self.save_name = self.name.get_active_text() self.save_value = self.value.get_text() self.save_recurse = self.recurse.get_active() @@ -397,18 +414,20 @@ ) def on_folder_name_changed(self, widget): - complete = (self.folder_name.get_text() != "") + complete = (widget.get_text() != "") self.get_widget("ok").set_sensitive(complete) def run(self): dialog = self.get_widget("CreateFolder") dialog.set_default_response(gtk.RESPONSE_OK) result = dialog.run() - + + fields_text = (self.folder_name.get_text(), self.textview.get_text()) + dialog.destroy() if result == gtk.RESPONSE_OK: - return (self.folder_name.get_text(), self.textview.get_text()) + return fields_text else: return None diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/diff.py rabbitvcs-0.15.2/rabbitvcs/ui/diff.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/diff.py 2011-10-21 17:07:55.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/diff.py 2012-09-23 21:12:56.000000000 +0000 @@ -58,15 +58,18 @@ if path2 is None: self.path2 = path1 - + + self.dialog = None + def launch(self): + if self.sidebyside: self.launch_sidebyside_diff() else: self.launch_unified_diff() - + self.stop_loading() - + def _build_export_path(self, index, revision, path): dest = rabbitvcs.util.helper.get_tmp_path("rabbitvcs-%s-%s-%s" % (str(index), str(revision)[:5], os.path.basename(path))) if os.path.exists(dest): @@ -82,7 +85,15 @@ self.dialog.run() def stop_loading(self): + + # Sometimes the launching will be too fast, and the dialog we're trusted with + # cleaning up, may not even have been created! + while self.dialog == None: + # Wait for dialog's creation. + pass + self.dialog.close() + self.dialog = None class SVNDiff(Diff): def __init__(self, path1, revision1=None, path2=None, revision2=None, @@ -292,7 +303,7 @@ rabbitvcs.util.helper.launch_diff_tool(dest1, dest2) classes_map = { - rabbitvcs.vcs.VCS_SVN: SVNDiff, + rabbitvcs.vcs.VCS_SVN: SVNDiff, rabbitvcs.vcs.VCS_GIT: GitDiff } diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/log.py rabbitvcs-0.15.2/rabbitvcs/ui/log.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/log.py 2011-06-11 17:53:50.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/log.py 2012-09-23 21:12:57.000000000 +0000 @@ -450,7 +450,7 @@ self.svn.log, self.path, revision_start=start, - limit=self.limit+1, + limit=self.limit, discover_changed_paths=True ) self.action.append(self.refresh) @@ -531,7 +531,7 @@ def on_next_clicked(self, widget): self.previous_starts.append(self.rev_start) - self.rev_start = self.rev_end - 1 + self.rev_start = int(self.rev_end) - 1 if self.rev_start < 1: self.rev_start = 1 diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/merge.py rabbitvcs-0.15.2/rabbitvcs/ui/merge.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/merge.py 2011-10-21 16:05:08.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/merge.py 2012-09-23 21:12:56.000000000 +0000 @@ -127,8 +127,8 @@ elif r.find(":") != -1: (low, high) = r.split(":") else: - low = r - high = r + high = int(r) + low = high - 1 # Before pysvn v1.6.3, there was a bug that required the ranges # tuple to have three elements, even though only two were used @@ -413,12 +413,11 @@ self.assistant.set_page_complete(self.page, True) class BranchMerge(InterfaceView): - def __init__(self, path, branch1=None, branch2=None): + def __init__(self, path, branch=None): InterfaceView.__init__(self, "branch-merge", "Merge") self.path = path - self.branch1 = branch1 - self.branch2 = branch2 + self.branch = branch self.vcs = rabbitvcs.vcs.VCS() def on_destroy(self, widget): @@ -428,8 +427,8 @@ self.close() class GitMerge(BranchMerge): - def __init__(self, path, branch1=None, branch2=None): - BranchMerge.__init__(self, path, branch1, branch2) + def __init__(self, path, branch=None): + BranchMerge.__init__(self, path, branch) self.git = self.vcs.git(path) self.init_branch_widgets() @@ -437,15 +436,7 @@ self.from_branches = rabbitvcs.ui.widget.RevisionSelector( self.get_widget("from_branch_container"), self.git, - revision=self.branch1, - url=path, - expand=True, - revision_changed_callback=self.__revision_changed - ) - self.to_branches = rabbitvcs.ui.widget.RevisionSelector( - self.get_widget("to_branch_container"), - self.git, - revision=self.branch2, + revision=self.branch, url=path, expand=True, revision_changed_callback=self.__revision_changed @@ -453,13 +444,19 @@ self.update_branch_info() + self.active_branch = self.git.get_active_branch() + if self.active_branch: + self.get_widget("to_branch").set_text(self.active_branch.name + " (" + self.active_branch.revision[0:7] + ")") + else: + self.get_widget("to_branch").set_text(_("No active branch")) + + def init_branch_widgets(self): self.info = {"from":{}, "to":{}} # FROM BRANCH INFO # from_container = self.get_widget("from_branch_info") - to_container = self.get_widget("to_branch_info") # Set up the Author line author = gtk.Label(_("Author:")) @@ -511,59 +508,8 @@ from_container.show_all() - # Set up the Author line - author = gtk.Label(_("Author:")) - author.set_size_request(90, -1) - author.set_properties(xalign=0,yalign=0) - self.info['to']['author'] = gtk.Label("") - self.info['to']['author'].set_properties(xalign=0,yalign=0,selectable=True) - self.info['to']['author'].set_line_wrap(True) - to_author_container = gtk.HBox(False, 0) - to_author_container.pack_start(author, False, False, 0) - to_author_container.pack_start(self.info['to']['author'], False, False, 0) - to_container.pack_start(to_author_container, False, False, 0) - - # Set up the Date line - date = gtk.Label(_("Date:")) - date.set_size_request(90, -1) - date.set_properties(xalign=0,yalign=0) - self.info['to']['date'] = gtk.Label("") - self.info['to']['date'].set_properties(xalign=0,yalign=0,selectable=True) - to_date_container = gtk.HBox(False, 0) - to_date_container.pack_start(date, False, False, 0) - to_date_container.pack_start(self.info['to']['date'], False, False, 0) - to_container.pack_start(to_date_container, False, False, 0) - - # Set up the Revision line - revision = gtk.Label(_("Revision:")) - revision.set_size_request(90, -1) - revision.set_properties(xalign=0,yalign=0) - self.info['to']['revision'] = gtk.Label("") - self.info['to']['revision'].set_properties(xalign=0,selectable=True) - self.info['to']['revision'].set_line_wrap(True) - to_revision_container = gtk.HBox(False, 0) - to_revision_container.pack_start(revision, False, False, 0) - to_revision_container.pack_start(self.info['to']['revision'], False, False, 0) - to_container.pack_start(to_revision_container, False, False, 0) - - # Set up the Log Message line - message = gtk.Label(_("Message:")) - message.set_size_request(90, -1) - message.set_properties(xalign=0,yalign=0) - self.info['to']['message'] = gtk.Label("") - self.info['to']['message'].set_properties(xalign=0,yalign=0,selectable=True) - self.info['to']['message'].set_line_wrap(True) - self.info['to']['message'].set_size_request(250, -1) - to_message_container = gtk.HBox(False, 0) - to_message_container.pack_start(message, False, False, 0) - to_message_container.pack_start(self.info['to']['message'], False, False, 0) - to_container.pack_start(to_message_container, False, False, 0) - - to_container.show_all() - def update_branch_info(self): from_branch = self.from_branches.get_revision_object() - to_branch = self.to_branches.get_revision_object() if from_branch.value: log = self.git.log(self.path, limit=1, revision=from_branch, showtype="branch") @@ -574,36 +520,27 @@ self.info['from']['revision'].set_text(unicode(from_info.revision)[0:7]) self.info['from']['message'].set_text(cgi.escape(rabbitvcs.util.helper.format_long_text(from_info.message, 500))) - if to_branch.value: - log = self.git.log(self.path, limit=1, revision=to_branch, showtype="branch") - if log: - to_info = log[0] - self.info['to']['author'].set_text(to_info.author) - self.info['to']['date'].set_text(rabbitvcs.util.helper.format_datetime(to_info.date)) - self.info['to']['revision'].set_text(unicode(to_info.revision)[0:7]) - self.info['to']['message'].set_text(cgi.escape(rabbitvcs.util.helper.format_long_text(to_info.message, 500))) - def on_from_branches_changed(self, widget): self.update_branch_info() - def on_to_branches_changed(self, widget): - self.update_branch_info() - def on_ok_clicked(self, widget, data=None): + self.hide() + from_branch = self.from_branches.get_revision_object() - to_branch = self.to_branches.get_revision_object() self.action = rabbitvcs.ui.action.GitAction( self.git, register_gtk_quit=self.gtk_quit_is_set() ) + self.action.append(self.action.set_header, _("Merge")) + self.action.append(self.action.set_status, _("Running Merge Command...")) self.action.append( self.git.merge, - from_branch, - to_branch + from_branch ) - + + self.action.append(self.action.set_status, _("Completed Merge")) self.action.append(self.action.finish) self.action.start() @@ -630,13 +567,9 @@ gtk.main() elif vcs_name == rabbitvcs.vcs.VCS_GIT: revision1 = None - revision2 = None if len(args) == 2: revision1 = args[1] - elif len(args) == 3: - revision1 = args[1] - revision2 = args[2] - window = GitMerge(path, revision1, revision2) + window = GitMerge(path, revision1) window.register_gtk_quit() gtk.main() diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/push.py rabbitvcs-0.15.2/rabbitvcs/ui/push.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/push.py 2010-12-14 21:17:03.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/push.py 2012-09-23 21:12:56.000000000 +0000 @@ -70,7 +70,8 @@ self.repository_selector = rabbitvcs.ui.widget.GitRepositorySelector( self.get_widget("repository_container"), - self.git + self.git, + self.on_branch_changed ) self.log_table = rabbitvcs.ui.widget.Table( @@ -127,7 +128,9 @@ gtk.gdk.threads_leave() def load_local_log(self): - self.local_log = self.git.log(limit=10, showtype="branch") + branch = self.repository_selector.branch_opt.get_active_text() + refspec = "refs/heads/%s" % branch + self.local_log = self.git.log(revision=self.git.revision(refspec), limit=10, showtype="branch") def load_remote_log(self): repository = self.repository_selector.repository_opt.get_active_text() @@ -136,7 +139,14 @@ refspec = "refs/remotes/%s/%s" % (repository, branch) self.remote_log = self.git.log(revision=self.git.revision(refspec), limit=10, showtype="branch") + def on_branch_changed(self, repository, branch): + self.load_local_log() + self.load_remote_log() + self.update_widgets() + def update_widgets(self): + self.log_table.clear() + repository = self.repository_selector.repository_opt.get_active_text() branch = self.repository_selector.branch_opt.get_active_text() @@ -146,22 +156,22 @@ has_commits = False for item in self.local_log: - try: + remote_log_item = None + if self.remote_log: remote_log_item = self.remote_log[0] - if unicode(remote_log_item.revision) != unicode(item.revision): - self.log_table.append([ - rabbitvcs.util.helper.format_datetime(item.date), - rabbitvcs.util.helper.format_long_text(item.message.rstrip("\n")) - ]) - has_commits = True - else: - break - except IndexError: + if (remote_log_item is None or + unicode(remote_log_item.revision) != unicode(item.revision)): + self.log_table.append([ + rabbitvcs.util.helper.format_datetime(item.date), + rabbitvcs.util.helper.format_long_text(item.message.rstrip("\n")) + ]) + has_commits = True + else: break + self.get_widget("ok").set_sensitive(True) if not has_commits: - self.get_widget("ok").set_sensitive(False) self.get_widget("status").set_text(_("No commits found")) classes_map = { diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/updateto.py rabbitvcs-0.15.2/rabbitvcs/ui/updateto.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/updateto.py 2010-12-29 15:51:16.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/updateto.py 2012-09-23 21:12:56.000000000 +0000 @@ -56,6 +56,7 @@ UpdateToRevision.__init__(self, path, revision) self.svn = self.vcs.svn() + self.get_widget("options_box").show() self.revision_selector = rabbitvcs.ui.widget.RevisionSelector( self.get_widget("revision_container"), @@ -115,6 +116,8 @@ class GitUpdateToRevision(UpdateToRevision): def __init__(self, path, revision): UpdateToRevision.__init__(self, path, revision) + + self.get_widget("revision_label").set_text(_("What revision/branch do you want to checkout?")) self.git = self.vcs.git(path) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/widget.py rabbitvcs-0.15.2/rabbitvcs/ui/widget.py --- rabbitvcs-0.15.0.5/rabbitvcs/ui/widget.py 2011-11-09 19:09:27.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/widget.py 2012-09-23 21:12:56.000000000 +0000 @@ -926,6 +926,12 @@ self.revision_entry.connect("changed", self.__revision_entry_changed) hbox.pack_start(self.revision_entry, expand, expand, 0) + self.branch_selector = None + if client.vcs == rabbitvcs.vcs.VCS_GIT: + self.branch_selector = GitBranchSelector(hbox, client, self.__branch_selector_changed) + self.branch_selector.hide() + + self.revision_browse = gtk.Button() revision_browse_image = gtk.Image() revision_browse_image.set_from_stock(gtk.STOCK_FIND, 1) @@ -981,6 +987,9 @@ index = self.revision_kind_opt.get_active() allow_revision_browse = True + + # Default to showing the revision entry + self.hide_branch_selector() # Only allow number entry if "Number" is selected if index == 1: @@ -989,6 +998,9 @@ if self.client.vcs == rabbitvcs.vcs.VCS_GIT: self.revision_entry.set_sensitive(True) allow_revision_browse = False + + # If showing the "Branch" option, show the branch selector + self.show_branch_selector() else: self.revision_entry.set_text("") self.revision_entry.set_sensitive(False) @@ -1017,6 +1029,12 @@ @rtype rabbitvcs.vcs.###.Revision @return A rabbitvcs revision object + index=0 HEAD + index=1 Revision Number + index=2 + SVN Working Copy + Git Branch Selector + """ index = self.revision_kind_opt.get_active() @@ -1031,7 +1049,7 @@ if self.client.vcs == rabbitvcs.vcs.VCS_SVN: return self.client.revision("working") elif self.client.vcs == rabbitvcs.vcs.VCS_GIT: - return self.client.revision(self.revision_entry.get_text()) + return self.client.revision(self.branch_selector.get_branch()) def set_kind_head(self): self.revision_kind_opt.set_active(0) @@ -1047,6 +1065,21 @@ self.revision_kind_opt.set_active(2) self.determine_widget_sensitivity() + def show_branch_selector(self): + if self.branch_selector: + self.revision_entry.hide() + self.revision_browse.hide() + self.branch_selector.show() + + def hide_branch_selector(self): + if self.branch_selector: + self.branch_selector.hide() + self.revision_entry.show() + self.revision_browse.show() + + def __branch_selector_changed(self, branch): + self.__revision_entry_changed(self.revision_entry) + class KeyValueTable(gtk.Table): """ Simple extension of a GTK table to display a two-column table of information @@ -1171,10 +1204,12 @@ self.host.set_text(self.git.config.get('remote "%s"' % repo, "url")) def __repository_changed(self, repository_opt): - pass + if self.changed_callback: + self.changed_callback(repository_opt.get_active_text(), self.branch_opt.get_active_text()) def __branch_changed(self, branch_opt): - pass + if self.changed_callback: + self.changed_callback(self.repository_opt.get_active_text(), self.branch_opt.get_active_text()) class GitBranchSelector: def __init__(self, container, git, changed_callback=None): @@ -1192,7 +1227,7 @@ active = index index += 1 - self.branch_opt = ComboBox(gtk.ComboBox(), tmp_branches) + self.branch_opt = ComboBox(gtk.ComboBoxEntry(), tmp_branches) self.branch_opt.set_active(active) self.branch_opt.cb.connect("changed", self.__branch_changed) self.branch_opt.cb.set_size_request(175, -1) @@ -1212,7 +1247,13 @@ def __branch_changed(self, branch_opt): pass - + + def show(self): + self.vbox.show_all() + + def hide(self): + self.vbox.hide() + class MultiFileTextEditor: """ Edit a set of text/config/ignore files diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/branch-merge.xml rabbitvcs-0.15.2/rabbitvcs/ui/xml/branch-merge.xml --- rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/branch-merge.xml 2011-01-14 14:51:17.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/xml/branch-merge.xml 2012-09-23 21:12:56.000000000 +0000 @@ -6,12 +6,11 @@ True Merge rabbitvcs - + True 12 - vertical 18 @@ -20,7 +19,6 @@ True - vertical 6 @@ -42,7 +40,6 @@ True - vertical 6 @@ -60,7 +57,6 @@ True - vertical 6 @@ -84,76 +80,50 @@ 0 + + + 0 + + + + + True + 6 - + True - vertical - 6 + 0 + <b>Will be merged into</b> + True + + + False + False + 0 + + + + + True + 12 - + True 0 - <b>To</b> - True - - False - False - 0 - - - - - True - 12 - - - True - vertical - 6 - - - True - - - - - - False - False - 0 - - - - - True - vertical - 6 - - - - - - False - False - 1 - - - - - - - 1 - + False + False 1 - 0 + False + False + 1 @@ -168,7 +138,7 @@ True True True - + False @@ -183,7 +153,7 @@ True True True - + False @@ -195,7 +165,7 @@ False False - 1 + 2 diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/commit.xml rabbitvcs-0.15.2/rabbitvcs/ui/xml/commit.xml --- rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/commit.xml 2011-01-14 14:51:17.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/xml/commit.xml 2012-09-23 21:12:56.000000000 +0000 @@ -188,7 +188,7 @@ - + True vertical diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/dialogs/property.xml rabbitvcs-0.15.2/rabbitvcs/ui/xml/dialogs/property.xml --- rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/dialogs/property.xml 2011-02-26 20:54:31.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/xml/dialogs/property.xml 2012-09-23 21:12:56.000000000 +0000 @@ -60,7 +60,7 @@ - + True True diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/properties.xml rabbitvcs-0.15.2/rabbitvcs/ui/xml/properties.xml --- rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/properties.xml 2011-01-14 14:51:17.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/xml/properties.xml 2012-09-23 21:12:56.000000000 +0000 @@ -2,7 +2,7 @@ - 500 + 600 True Properties GTK_WIN_POS_CENTER @@ -45,21 +45,10 @@ True 6 - - 90 - True - 0 - URL/Path: - - - False - False - - - True True + URL/Path @@ -85,12 +74,12 @@ 2 - + False False - + 150 diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/update.xml rabbitvcs-0.15.2/rabbitvcs/ui/xml/update.xml --- rabbitvcs-0.15.0.5/rabbitvcs/ui/xml/update.xml 2011-01-14 14:51:17.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/ui/xml/update.xml 2012-09-23 21:12:56.000000000 +0000 @@ -8,20 +8,18 @@ Update center-always rabbitvcs-small - + True 12 - vertical 18 True - vertical 6 - + True 0 <b>Revision</b> @@ -56,8 +54,6 @@ - True - vertical 6 @@ -79,7 +75,6 @@ True - vertical Recursive @@ -133,6 +128,8 @@ + False + False 2 @@ -148,7 +145,7 @@ True True True - + False @@ -163,7 +160,7 @@ True True True - + False diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/util/__init__.py rabbitvcs-0.15.2/rabbitvcs/util/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/util/__init__.py 2010-12-10 00:06:15.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/util/__init__.py 2012-09-23 21:12:56.000000000 +0000 @@ -22,7 +22,7 @@ from rabbitvcs.util.log import Log -log = Log("rabbitvcs.util.__init__") +logger = Log("rabbitvcs.util.__init__") class Function: """ @@ -118,7 +118,7 @@ try: func.start() except Exception, e: - log.exception() + logger.exception() if self._exception: self._exception.set_args(e) self._exception.call() diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/util/configspec/configspec.ini rabbitvcs-0.15.2/rabbitvcs/util/configspec/configspec.ini --- rabbitvcs-0.15.0.5/rabbitvcs/util/configspec/configspec.ini 2011-11-04 16:40:03.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/util/configspec/configspec.ini 2012-09-23 21:12:56.000000000 +0000 @@ -4,6 +4,7 @@ enable_emblems = boolean(default=True) enable_recursive = boolean(default=True) show_debug = boolean(default=False) +show_unversioned_files = boolean(default=True) [external] diff_tool = string(default="/usr/bin/meld") diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/util/contextmenu.py rabbitvcs-0.15.2/rabbitvcs/util/contextmenu.py --- rabbitvcs-0.15.0.5/rabbitvcs/util/contextmenu.py 2011-10-17 19:05:06.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/util/contextmenu.py 2012-09-23 21:12:56.000000000 +0000 @@ -35,7 +35,7 @@ else: import gtk -from rabbitvcs.vcs import create_vcs_instance, VCS_SVN, VCS_GIT, VCS_DUMMY +from rabbitvcs.vcs import create_vcs_instance, VCS_SVN, VCS_GIT, VCS_DUMMY, VCS_MERCURIAL from rabbitvcs.util.log import Log from rabbitvcs import gettext from rabbitvcs.util.settings import SettingsManager @@ -308,7 +308,7 @@ Refreshes an item status, which is actually just invalidate. """ - self.debug_invalidate(menu_item) + self.debug_invalidate(widget) def debug_revert(self, widget, data1=None, data2=None): client = pysvn.Client() @@ -600,6 +600,7 @@ checks = { "is_svn" : lambda path: (self.vcs_client.guess(path)["vcs"] == VCS_SVN), "is_git" : lambda path: (self.vcs_client.guess(path)["vcs"] == VCS_GIT), + "is_mercurial" : lambda path: (self.vcs_client.guess(path)["vcs"] == VCS_MERCURIAL), "is_dir" : os.path.isdir, "is_file" : os.path.isfile, "exists" : os.path.exists, @@ -654,7 +655,7 @@ not self.path_dict["is_added"]) def commit(self, data=None): - if self.path_dict["is_svn"] or self.path_dict["is_git"]: + if self.path_dict["is_svn"] or self.path_dict["is_git"] or self.path_dict["is_mercurial"]: if self.path_dict["is_in_a_or_a_working_copy"]: if (self.path_dict["is_added"] or self.path_dict["is_modified"] or @@ -889,6 +890,10 @@ def rabbitvcs_git(self, data=None): return (self.path_dict["is_git"] or not self.path_dict["is_in_a_or_a_working_copy"]) + + def rabbitvcs_mercurial(self, data=None): + return (self.path_dict["is_mercurial"] or + not self.path_dict["is_in_a_or_a_working_copy"]) def debug(self, data=None): return settings.get("general", "show_debug") @@ -917,7 +922,7 @@ not self.path_dict["is_in_a_or_a_working_copy"]) def push(self, data=None): - return (self.path_dict["is_git"]) + return (self.path_dict["is_git"] or self.path_dict["is_mercurial"]) def branches(self, data=None): return (self.path_dict["is_git"]) @@ -1346,6 +1351,10 @@ (MenuSeparator, None), (MenuSettings, None), (MenuAbout, None) + ]), + (MenuRabbitVCSMercurial, [ + (MenuSettings, None), + (MenuAbout, None) ]) ] diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/util/contextmenuitems.py rabbitvcs-0.15.2/rabbitvcs/util/contextmenuitems.py --- rabbitvcs-0.15.0.5/rabbitvcs/util/contextmenuitems.py 2011-05-24 13:07:18.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/util/contextmenuitems.py 2012-09-23 21:12:56.000000000 +0000 @@ -204,7 +204,7 @@ ) return action - + def make_gtk_menu_item(self, id_magic = None): action = self.make_action(id_magic) @@ -218,6 +218,17 @@ menuitem = action.create_menu_item() return menuitem + + def make_gtk3_menu_item(self, id_magic = None): + action = self.make_action(id_magic) + + if self.icon: + menuitem = action.create_menu_item() + menuitem.set_image(gtk.Image.new_from_icon_name(self.icon, gtk.IconSize.MENU)) + else: + menuitem = action.create_menu_item() + + return menuitem def make_nautilus_menu_item(self, id_magic = None): # WARNING: this import is here because it will fail if it is not done @@ -362,6 +373,11 @@ label = _("RabbitVCS Git") icon = "rabbitvcs" +class MenuRabbitVCSMercurial(MenuItem): + identifier = "RabbitVCS::RabbitVCS_Mercurial" + label = _("RabbitVCS Hg") + icon = "rabbitvcs" + class MenuRepoBrowser(MenuItem): identifier = "RabbitVCS::Repo_Browser" label = _("Repository Browser") diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/util/helper.py rabbitvcs-0.15.2/rabbitvcs/util/helper.py --- rabbitvcs-0.15.0.5/rabbitvcs/util/helper.py 2011-11-04 16:30:40.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/util/helper.py 2012-09-23 21:12:56.000000000 +0000 @@ -113,7 +113,10 @@ def format_datetime(dt, format=None): if format: - return dt.strftime(format).decode(locale.getpreferredencoding(False)) + enc = locale.getpreferredencoding(False) + if enc is None or len(enc) == 0: + enc = "UTF8" + return dt.strftime(format).decode(enc) now = datetime.datetime.now() delta = now - dt @@ -135,7 +138,10 @@ else: returner = dt.strftime(DT_FORMAT_ALL) - return returner.decode(locale.getpreferredencoding(False)) + enc = locale.getpreferredencoding(False) + if enc is None or len(enc) == 0: + enc = "UTF8" + return returner.decode(enc) def in_rich_compare(item, list): """ Tests whether the item is in the given list. This is mainly to work @@ -461,7 +467,11 @@ if path == "" or path is None: return - subprocess.Popen(["gnome-open", os.path.abspath(path)]) + import platform + if platform.system() == 'Darwin': + subprocess.Popen(["open", os.path.abspath(path)]) + else: + subprocess.Popen(["gnome-open", os.path.abspath(path)]) def browse_to_item(path): """ @@ -472,10 +482,16 @@ """ - subprocess.Popen([ - "nautilus", "--no-desktop", "--browser", - os.path.dirname(os.path.abspath(path)) - ]) + import platform + if platform.system() == 'Darwin': + subprocess.Popen([ + "open", "--reveal", os.path.dirname(os.path.abspath(path)) + ]) + else: + subprocess.Popen([ + "nautilus", "--no-desktop", "--browser", + os.path.dirname(os.path.abspath(path)) + ]) def delete_item(path): """ @@ -488,11 +504,18 @@ abspath = os.path.abspath(path) permanent_delete = False try: - # If the gvfs-trash program is not found, an OSError exception will - # be thrown, and rm will be used instead - retcode = subprocess.call(["gvfs-trash", abspath]) - if retcode: - permanent_delete = True + + import platform + if platform.system() == 'Darwin': + retcode = subprocess.call(["mv", abspath, os.getenv("HOME") + "/.Trash"]) + if retcode: + permanent_delete = True + else: + # If the gvfs-trash program is not found, an OSError exception will + # be thrown, and rm will be used instead + retcode = subprocess.call(["gvfs-trash", abspath]) + if retcode: + permanent_delete = True except OSError: permanent_delete = True @@ -601,8 +624,11 @@ # path = "%s/ui/%s.py" % (basedir, filename) path = os.path.join(basedir, "ui", filename + ".py") - if os.path.exists(path): - proc = subprocess.Popen([sys.executable, path] + args, env=env) + if os.path.exists(path): + executable = sys.executable + if "PYTHON" in os.environ.keys(): + executable = os.environ["PYTHON"] + proc = subprocess.Popen([executable, path] + args, env=env) if block: proc.wait() @@ -756,7 +782,7 @@ def unquote_url(url_text): (scheme, netloc, path, params, query, fragment) = urlparse.urlparse(url_text) # netloc_unquoted = urllib.unquote(netloc) - path_unquoted = urllib.unquote(path) + path_unquoted = urllib.unquote(path).decode('utf-8') params_unquoted = urllib.unquote(query) query_unquoted = urllib.unquote_plus(query) fragment_unquoted = urllib.unquote(fragment) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/util/settings.py rabbitvcs-0.15.2/rabbitvcs/util/settings.py --- rabbitvcs-0.15.0.5/rabbitvcs/util/settings.py 2011-02-10 22:25:42.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/util/settings.py 2012-09-23 21:12:56.000000000 +0000 @@ -71,7 +71,8 @@ configspec_paths = [ os.path.join(dirname(__file__), "configspec/configspec.ini"), os.path.join(package_prefix(), "share/rabbitvcs/configspec.ini"), - "/usr/share/rabbitvcs/configspec.ini" + "/usr/share/rabbitvcs/configspec.ini", + "/usr/local/share/rabbitvcs/configspec.ini" ] for path in configspec_paths: @@ -153,7 +154,7 @@ returner = self.settings[section][keyword] except KeyError: print "Error: section %s:%s doesn't exist" % (section, keyword) - + return returner def set(self, section, keyword, value=""): diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/__init__.py rabbitvcs-0.15.2/rabbitvcs/vcs/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/__init__.py 2011-05-19 12:52:55.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/__init__.py 2012-09-23 21:12:56.000000000 +0000 @@ -31,6 +31,7 @@ VCS_SVN = 'svn' VCS_GIT = 'git' +VCS_MERCURIAL = 'mercurial' VCS_DUMMY = 'unknown' def guess(path): @@ -40,7 +41,7 @@ folders = { ".svn": VCS_SVN, ".git": VCS_GIT, - ".hg": VCS_DUMMY, + ".hg": VCS_MERCURIAL, ".bzr": VCS_DUMMY, ".CVS": VCS_DUMMY } @@ -84,6 +85,7 @@ return self.clients[VCS_SVN] except Exception, e: logger.debug("Unable to load SVN module: %s" % e) + logger.exception(e) self.clients[VCS_SVN] = self.dummy() return self.clients[VCS_SVN] @@ -114,12 +116,43 @@ self.clients[VCS_GIT] = git return self.clients[VCS_GIT] except Exception, e: - import traceback - traceback.print_exc() logger.debug("Unable to load Git module: %s" % e) + logger.exception(e) self.clients[VCS_GIT] = self.dummy() return self.clients[VCS_GIT] + def mercurial(self, path=None, is_repo_path=False): + if VCS_MERCURIAL in self.clients: + mercurial = self.clients[VCS_MERCURIAL] + + if path: + if is_repo_path: + mercurial.set_repository(path) + else: + repo_path = mercurial.find_repository_path(path) + mercurial.set_repository(repo_path) + + return mercurial + else: + try: + from rabbitvcs.vcs.mercurial import Mercurial + mercurial = Mercurial() + + if path: + if is_repo_path: + mercurial.set_repository(path) + else: + repo_path = mercurial.find_repository_path(path) + mercurial.set_repository(repo_path) + + self.clients[VCS_MERCURIAL] = mercurial + return self.clients[VCS_MERCURIAL] + except Exception, e: + logger.debug("Unable to load Mercurial module: %s" % e) + logger.exception(e) + self.clients[VCS_MERCURIAL] = self.dummy() + return self.clients[VCS_MERCURIAL] + def client(self, path, vcs=None): # Determine the VCS instance based on the vcs parameter if vcs: @@ -127,12 +160,16 @@ return self.svn() elif vcs == VCS_GIT: return self.git(path) + elif vcs == VCS_MERCURIAL: + return self.mercurial(path) guess = self.guess(path) if guess["vcs"] == VCS_GIT: return self.git(guess["repo_path"], is_repo_path=False) elif guess["vcs"] == VCS_SVN: return self.svn() + elif guess["vcs"] == VCS_MERCURIAL: + return self.mercurial(guess["repo_path"], is_repo_path=False) else: return self.dummy() @@ -170,6 +207,10 @@ client = self.client(paths[0]) return client.get_items(paths, statuses) + def statuses_for_add(self,paths): + client = self.client(paths[0]) + return client.STATUSES_FOR_ADD + def statuses_for_commit(self, paths): client = self.client(paths[0]) return client.STATUSES_FOR_COMMIT diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/README rabbitvcs-0.15.2/rabbitvcs/vcs/git/README --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/README 2010-05-28 18:39:10.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/git/README 2012-09-23 21:12:56.000000000 +0000 @@ -3,5 +3,5 @@ Dependencies ------------ -* dulwich >= 0.4.1 +* dulwich >= 0.6.1 * python >= 2.4 diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/__init__.py rabbitvcs-0.15.2/rabbitvcs/vcs/git/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/__init__.py 2011-03-03 12:58:03.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/git/__init__.py 2012-09-23 21:12:56.000000000 +0000 @@ -109,6 +109,10 @@ "removed" ] + STATUSES_FOR_ADD = [ + "untracked" + ] + STATUSES_FOR_COMMIT = [ "untracked", "missing", @@ -294,6 +298,20 @@ else: return Revision("hash", value) + def add(self, paths, recurse=True): + """ + Add files to a git repository. + + @type paths: list + @param paths: A list of paths or files. + + @type recurse: boolean + @param recurse: Recursively add a directory's children + + """ + + return self.stage(paths) + def is_tracking(self, name): return self.client.is_tracking("refs/heads/%s" % name) @@ -420,7 +438,20 @@ )) return branches - + + def get_active_branch(self): + results = self.client.branch_list() + for result in results: + if result["tracking"]: + return BranchEntry( + result["name"], + result["tracking"], + result["revision"], + result["message"] + ) + + return None + def checkout(self, paths=[], revision=Revision("HEAD")): """ Checkout a series of paths from a tree or commit. If no tree or commit @@ -572,8 +603,8 @@ return self.client.fetch(host) - def merge(self, branch1, branch2): - return self.client.merge(branch1.primitive(), branch2.primitive()) + def merge(self, branch): + return self.client.merge(branch.primitive()) def remote_add(self, name, host): """ @@ -934,9 +965,15 @@ def set_callback_notify(self, func): self.client.set_callback_notify(func) + + def set_callback_progress_update(self, func): + self.client.set_callback_progress_update (func) def set_callback_get_user(self, func): self.client.set_callback_get_user(func) def set_callback_get_cancel(self, func): self.client.set_callback_get_cancel(func) + + def set_callback_cancel(self, func): + self.client.callback_cancel = func diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/gittyup/client.py rabbitvcs-0.15.2/rabbitvcs/vcs/git/gittyup/client.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/gittyup/client.py 2011-10-21 17:07:55.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/git/gittyup/client.py 2012-09-23 21:12:56.000000000 +0000 @@ -19,6 +19,7 @@ import dulwich.objects from dulwich.pack import Pack from dulwich.index import commit_index, write_index_dict, SHA1Writer +#from dulwich.patch import write_tree_diff from exceptions import * import util @@ -53,6 +54,7 @@ class GittyupClient: def __init__(self, path=None, create=False): self.callback_notify = callback_notify_null + self.callback_progress_update = None self.callback_get_user = callback_get_user self.callback_get_cancel = callback_get_cancel @@ -60,6 +62,9 @@ self.git_version = None + self.numberOfCommandStages = 0 + self.numberOfCommandStagesExecuted = 0 + if path: try: self.repo = dulwich.repo.Repo(path) @@ -283,6 +288,8 @@ directories.append(rel_root) + #Remove duplicates in list + directories=list(set(directories)) return (sorted(files), directories) def _get_blob_from_file(self, path): @@ -457,7 +464,7 @@ if status == MissingStatus: self._remove_from_index(index, status.path) - index.write() + index.write() def unstage(self, paths): """ @@ -721,16 +728,19 @@ @param origin: Specify the origin of the repository """ - - more = ["-o", "origin"] + + self.numberOfCommandStages = 3 + + more = ["-o", "origin","--progress"] if bare: more.append("--bare") base_dir = os.path.split(path)[0] cmd = ["git", "clone", host, path] + more + try: - (status, stdout, stderr) = GittyupCommand(cmd, cwd=base_dir, notify=self.notify, cancel=self.get_cancel).execute() + (status, stdout, stderr) = GittyupCommand(cmd, cwd=base_dir, notify=self.notify_and_parse_progress, cancel=self.get_cancel).execute() except GittyupCommandError, e: self.callback_notify(e) @@ -788,6 +798,7 @@ if commit_all: self.stage_all() + commit = dulwich.objects.Commit() commit.message = message commit.tree = commit_index(self.repo.object_store, self._get_index()) @@ -809,14 +820,29 @@ commit.author_timezone = (author_timezone and author_timezone or TZ) commit.encoding = (encoding and encoding or ENCODING) - + self.repo.object_store.add_object(commit) self.repo.refs["HEAD"] = commit.id if initial_commit: self.track("refs/heads/master") - + + # Get the branch for this repository. + branch_full = self.repo.refs.read_ref("HEAD") + + if (branch_full != None): + branch_components = re.search("refs/heads/(.+)", branch_full) + + if (branch_components != None): + branch = branch_components.group(1) + + self.notify("[" + commit.id + "] -> " + branch) + self.notify("To branch: " + branch) + + #Print tree changes. + #dulwich.patch.write_tree_diff(sys.stdout, self.repo.object_store, commit.tree, commit.id) + return commit.id def remove(self, paths): @@ -894,10 +920,11 @@ @param refspec: The branch name to pull from """ - - cmd = ["git", "pull", repository, refspec] + self.numberOfCommandStages = 2 + + cmd = ["git", "pull","--progress", repository, refspec] try: - (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify, cancel=self.get_cancel).execute() + (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify_and_parse_git_pull, cancel=self.get_cancel).execute() except GittyupCommandError, e: self.callback_notify(e) @@ -914,9 +941,12 @@ """ - cmd = ["git", "push", repository, refspec] + self.numberOfCommandStages = 2 + + cmd = ["git", "push", "--progress", repository, refspec] + try: - (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify, cancel=self.get_cancel).execute() + (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify_and_parse_git_push, cancel=self.get_cancel).execute() except GittyupCommandError, e: self.callback_notify(e) @@ -941,8 +971,8 @@ return refs - def merge(self, branch1, branch2="master"): - cmd = ["git", "merge", branch1, branch2] + def merge(self, branch): + cmd = ["git", "merge", branch] try: (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify, cancel=self.get_cancel).execute() except GittyupCommandError, e: @@ -1155,20 +1185,80 @@ except Exception, e: pass + # Determine untracked directories + cmd = ["git", "clean", "-nd", self.repo.path] + try: + (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify).execute() + except GittyupCommandError, e: + self.callback_notify(e) + + untracked_directories = [] + for line in stdout: + components = re.match("^(Would remove)\s(.*?)$", line) + untracked_path = components.group(2) + if untracked_path[-1]=='/': + untracked_directories.append(untracked_path[:-1]) + + #Determine the ignored files and directories in Repo + cmd = ["git", "clean", "-ndX", self.repo.path] + try: + (status, stdout, stderr) = GittyupCommand(cmd, cwd=self.repo.path, notify=self.notify).execute() + except GittyupCommandError, e: + self.callback_notify(e) + ignored_directories=[] + for line in stdout: + components = re.match("^(Would remove)\s(.*?)$", line) + ignored_path=components.group(2) + if ignored_path[-1]=='/': + ignored_directories.append(ignored_path[:-1]) + next + statuses.append(IgnoredStatus(ignored_path)) + try: + del files_hash[ignored_path] + except Exception, e: + pass for file,data in files_hash.items(): - statuses.append(NormalStatus(file)) + ignore_file=False + untracked_file=False + for ignored_path in ignored_directories: + if ignored_path in file: + ignore_file=True + break + for untracked_path in untracked_directories: + if untracked_path in file: + untracked_file=True + break + if untracked_file==True: + statuses.append(UntrackedStatus(file)) + elif ignore_file==True: + statuses.append(IgnoredStatus(file)) + else: + statuses.append(NormalStatus(file)) # Determine status of folders based on child contents for d in directories: d_status = NormalStatus(d) - + + # Check if directory is untracked or a sub-directory of an untracked directory + for untracked_path in untracked_directories: + if untracked_path in d: + d_status = UntrackedStatus(d) + break + + # Check if directory includes modified files for file in modified_files: - if os.path.join(d, os.path.basename(file)) == file: + if file.startswith(d): d_status = ModifiedStatus(d) break - + + # Check if directory is ignored + for ignored_path in ignored_directories: + if ignored_path in d: + d_status = IgnoredStatus(d) + break statuses.append(d_status) + return statuses def status_dulwich(self, path): @@ -1557,6 +1647,9 @@ def set_callback_notify(self, func): self.callback_notify = func + def set_callback_progress_update(self, func): + self.callback_progress_update = func + def set_callback_get_user(self, func): self.callback_get_user = func @@ -1566,5 +1659,233 @@ def notify(self, data): self.callback_notify(data) + def notify_and_parse_progress(self, data): + # When progress is requested to a git command, it will + # respond with the current operation, and that operations current progress + # in the following format: ": % (/)". + # + # When a command has reached 100% the format of this final message assumes the formatt: + # ": 100% (/), , done." + + + returnData = {"action":"","path":"","mime_type":""} + + #print "parsing message: " + str(data) + + # If data is already a dict, we'll assume it's already been parsed, and return. + if isinstance (data, dict): + self.notify (data); + return + + # Is this an error? + message_components = re.search("^([eE]rror|[fF]atal): (.+)", data) + + if message_components != None: + returnData["action"] = "Error" + returnData["path"] = message_components.group(2) + self.notify (returnData) + return + + # Check to see if this is a remote command. + remote_check = re.search("^(remote: )(.+)$", data) + + if remote_check != None: + returnData["action"] = "Remote" + message = remote_check.group(2) + + else: + message = data + + # First, we'll test to see if this is a progress notification. + if "%" not in message: + # No, this is just a regular message. + # Some messages have a strage tendancy to append a non-printable character, + # followed by a right square brace and a capitol "K". This tests for, and + # strips these superfluous characters. + message_components = re.search("^(.+).\[K", message) + if message_components != None: + returnData["path"] = message_components.group(1) + else: + returnData["path"] = message + + self.notify (returnData) + return + + # Extract the percentage, which will be all numerals directly + # prior to '%'. + message_components = re.search("^(.+): +([0-9]+)%", message) + + if message_components == None: + print "Error: failed to parse git string: " + data + return + + fraction = float(message_components.group(2)) / 100 # Convert percentage to fraction. + current_action = message_components.group(1) + + # If we're at 0%, then we want to notify which action we're performing. + if fraction == 0: + returnData["path"] = current_action + self.notify(returnData) + + #print "stage fraction: " + str (fraction) + + # If we're using a number of stages, adjust the fraction acordingly. + if self.numberOfCommandStages > 0: + fraction = (self.numberOfCommandStagesExecuted + fraction) / self.numberOfCommandStages + + # If we've finished the current stage (100%). + if "done" in message: + self.numberOfCommandStagesExecuted += 1 + + # If we've registered a callback for progress, update with the new fraction. + if self.callback_progress_update != None: + #print "setting pbar: " + str(fraction) + self.callback_progress_update(fraction) + + # If we've finished the whole command (all stages). + if fraction == 1 and "done" in message: + # Reset stage variables. + self.numberOfCommandStages = 0 + self.numberOfCommandStagesExecuted = 0 + + def notify_and_parse_git_pull (self, data): + return_data = {"action":"","path":"","mime_type":""} + + message_parsed = False + + # Look for "From" line (e.g. "From ssh://server:22/my_project") + message_components = re.search("^From (.+)", data) + + if message_components != None: + return_data["action"] = "From" + return_data["path"] = message_components.group(1) + message_parsed = True + + # Look for "Branch" line (e.g. "* branch master -> FETCH_HEAD") + message_components = re.search("\* branch +([A-z0-9]+) +-> (.+)", data) + + if message_components != None: + return_data["action"] = "Branch" + return_data["path"] = message_components.group(1) + " -> " + message_components.group(2) + message_parsed = True + + # Look for a file line (e.g. "src/somefile.py | 5 -++++") + message_components = re.search(" +(.+) +\| *([0-9]+) ([+-]+)", data) + + if message_components != None: + return_data["action"] = "Modified" + return_data["path"] = message_components.group(1) + return_data["mime_type"] = message_components.group(2) + " " + message_components.group(3) + message_parsed = True + + # Look for a updating line (e.g. "Updating ffffff..ffffff") + message_components = re.search("^Updating ([a-f0-9.]+)", data) + + if message_components != None: + return_data["action"] = "Updating" + return_data["path"] = message_components.group(1) + message_parsed = True + + # Look for a "create mode" line (e.g. "create mode 100755 file.py") + message_components = re.search("create mode ([0-9]+) (.+)", data) + + if message_components != None: + return_data["action"] = "Create" + return_data["path"] = message_components.group(2) + return_data["mime_type"] = "mode: " + message_components.group(1) + message_parsed = True + + # Look for a "delete mode" line (e.g. "create mode 100755 file.py") + message_components = re.search("delete mode ([0-9]+) (.+)", data) + + if message_components != None: + return_data["action"] = "Delete" + return_data["path"] = message_components.group(2) + return_data["mime_type"] = "mode: " + message_components.group(1) + message_parsed = True + + # Look for an "Auto-merging" line (e.g. "Auto-merging src/file.py") + message_components = re.search("^Auto-merging (.+)", data) + + if message_components != None: + return_data["action"] = "Merging" + return_data["path"] = message_components.group(1) + message_parsed = True + + # Look for a "binary" line (e.g. "icons/file.png" | Bin 0 -> 55555 bytes) + message_components = re.search("^[ ](.+) +\| Bin ([0-9]+ -> [0-9]+ bytes)", data) + + if message_components != None: + return_data["action"] = "Binary" + return_data["path"] = message_components.group(1) + return_data["mime_type"] = message_components.group(2) + message_parsed = True + + # Look for a "rename" line (e.g. "rename src/{foo.py => bar.py} (50%)") + message_components = re.search("rename (.+}) \([0-9]+%\)", data) + + if message_components != None: + return_data["action"] = "Rename" + return_data["path"] = message_components.group(1) + message_parsed = True + + # Look for a "copy" line (e.g. "copy src/{foo.py => bar.py} (50%)") + message_components = re.search("copy (.+}) \([0-9]+%\)", data) + + if message_components != None: + return_data["action"] = "Copy" + return_data["path"] = message_components.group(1) + message_parsed = True + + # Prepend "Error" to conflict lines. e.g. : + # CONFLICT (content): Merge conflict in file.py. + # Automatic merge failed; fix conflicts and then commit the result. + message_components = re.search("^CONFLICT \(|Automatic merge failed", data) + + if message_components != None: + return_data["action"] = "Error" + return_data["path"] = data + message_parsed = True + + if message_parsed == False: + return_data = data + + self.notify_and_parse_progress (return_data) + + def notify_and_parse_git_push (self, data): + return_data = {"action":"","path":"","mime_type":""} + + message_parsed = False + + # Look for to line. e.g. "To gitosis@server.org:project.git". Exclude any + # lines that include a space (as this could be a message about something else) + message_components = re.search("^To ([^ ]+$)", data) + + if message_components != None: + return_data["action"] = "To" + return_data["path"] = message_components.group(1) + message_parsed = True + + # Look for "new branch" line. e.g. " * [new branch] master -> master" + message_components = re.search("^ \* \[new branch\] +(.+) -> (.+)", data) + + if message_components != None: + return_data["action"] = "New Branch" + return_data["path"] = message_components.group(1) + " -> " + message_components.group(2) + message_parsed = True + + # Look for "rejected" line. e.g. " ![rejected] master -> master (non-fast-forward)". + message_components = re.search("!\[rejected\] +(.+)", data) + + if message_components != None: + return_data["action"] = "Rejected" + return_data["path"] = message_components.group(1) + message_parsed = True + + if message_parsed == False: + return_data = data + + self.notify_and_parse_progress (return_data) + def get_cancel(self): - return self.callback_get_cancel() + return self.callback_get_cancel diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/gittyup/command.py rabbitvcs-0.15.2/rabbitvcs/vcs/git/gittyup/command.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/gittyup/command.py 2010-12-21 16:45:43.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/git/gittyup/command.py 2012-09-23 21:12:56.000000000 +0000 @@ -40,49 +40,27 @@ return returner def execute(self): - proc = subprocess.Popen(self.command, + proc = subprocess.Popen(self.command, cwd=self.cwd, stdin=None, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, - close_fds=True) - - fcntl.fcntl( - proc.stdout.fileno(), - fcntl.F_SETFL, - fcntl.fcntl(proc.stdout.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK, - ) + close_fds=True, + preexec_fn=os.setsid, + universal_newlines=True) stdout = [] - last_chunk = "" + while True: - readx = select.select([proc.stdout.fileno()], [], [])[0] - if readx: - chunk = last_chunk + proc.stdout.read() - if chunk == '': - break - - if chunk[-1] != "\n": - last_chunk = chunk - continue - - lines = self.get_lines(chunk) - - for line in lines: - self.notify(line) - stdout.append(line) - - chunk = "" - last_chunk = "" + line = proc.stdout.readline() + + if line == '': + break + line = line.rstrip('\n') # Strip trailing newline. + self.notify(line) + stdout.append(line) if self.get_cancel(): proc.kill() - if chunk: - lines = self.get_lines(chunk) - - for line in lines: - self.notify(line) - stdout.append(line) - return (0, stdout, None) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/gittyup/objects.py rabbitvcs-0.15.2/rabbitvcs/vcs/git/gittyup/objects.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/git/gittyup/objects.py 2010-10-11 12:06:52.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/git/gittyup/objects.py 2012-09-23 21:12:56.000000000 +0000 @@ -38,6 +38,9 @@ class MissingStatus(GittyupStatus): identifier = "missing" +class IgnoredStatus(GittyupStatus): + identifier = "ignored" + class NoStatus(GittyupStatus): identifier = "" def __eq__(self, other): diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/mercurial/__init__.py rabbitvcs-0.15.2/rabbitvcs/vcs/mercurial/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/mercurial/__init__.py 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/mercurial/__init__.py 2012-09-23 21:12:56.000000000 +0000 @@ -0,0 +1,273 @@ +# +# This is an extension to the Nautilus file manager to allow better +# integration with the Subversion source control system. +# +# Copyright (C) 2006-2008 by Jason Field +# Copyright (C) 2007-2008 by Bruce van der Kooij +# Copyright (C) 2008-2010 by Adam Plumb +# +# RabbitVCS is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# RabbitVCS is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with RabbitVCS; If not, see . +# + +""" +Concrete VCS implementation for Mercurial functionality. +""" + +import os.path +from datetime import datetime + +from mercurial import commands, ui, hg + +import rabbitvcs.util.helper + +import rabbitvcs.vcs +import rabbitvcs.vcs.status +import rabbitvcs.vcs.log +import rabbitvcs.vcs.mercurial.util +from rabbitvcs.vcs.branch import BranchEntry +from rabbitvcs.util.log import Log + +log = Log("rabbitvcs.vcs.mercurial") + +from rabbitvcs import gettext +_ = gettext.gettext + +class Revision: + """ + Implements a simple revision object as a wrapper around the gittyup revision + object. This allows us to provide a standard interface to the object data. + """ + + def __init__(self, kind, value=None): + self.kind = kind.upper() + self.value = value + + if self.kind == "HEAD": + self.value = "HEAD" + + self.is_revision_object = True + + def __unicode__(self): + if self.value: + return unicode(self.value) + else: + return self.kind + + def short(self): + if self.value: + return unicode(self.value)[0:7] + else: + return self.kind + + def __str__(self): + return self.__unicode__() + + def __repr__(self): + return self.__unicode__() + + def primitive(self): + return self.value + +class Mercurial: + STATUS = { + "normal": "C", + "added": "A", + "removed": "R", + "modified": "M", + "untracked": "?", + "missing": "!" + } + + STATUS_REVERSE = { + "C": "normal", + "A": "added", + "R": "removed", + "M": "modified", + "?": "untracked", + "!": "missing" + } + + STATUSES_FOR_REVERT = [ + "missing", + "modified", + "removed" + ] + + STATUSES_FOR_COMMIT = [ + "untracked", + "missing", + "modified", + "added", + "removed" + ] + + STATUSES_FOR_STAGE = [ + "untracked" + ] + + STATUSES_FOR_UNSTAGE = [ + "added" + ] + + def __init__(self, repo=None): + self.vcs = rabbitvcs.vcs.VCS_MERCURIAL + self.interface = "mercurial" + + self.ui = ui.ui() + self.repository = None + if repo: + self.repository_path = repo + self.repository = hg.repository(self.ui, self.repository_path) + + self.cache = rabbitvcs.vcs.status.StatusCache() + + def set_repository(self, path): + self.repository_path = path + self.repository = hg.repository(self.ui, self.repository_path) + + def get_repository(self): + return self.repository_path + + def find_repository_path(self, path): + path_to_check = path + while path_to_check != "/" and path_to_check != "": + if os.path.isdir(os.path.join(path_to_check, ".hg")): + return path_to_check + + path_to_check = os.path.split(path_to_check)[0] + + return None + + def get_relative_path(self, path): + if path == self.repository_path: + return "" + + return rabbitvcs.vcs.mercurial.util.relativepath(self.repository_path, path) + + def get_absolute_path(self, path): + return os.path.join(self.repository_path, path).rstrip("/") + + def statuses(self, path, recurse=True, invalidate=False): + mercurial_statuses = self.repository.status(clean=True, unknown=True) + + # the status method returns a series of tuples filled with files matching + # the statuses below + tuple_order = ["modified", "added", "removed", "missing", "unknown", "ignored", "clean"] + + # go through each tuple (each of which has a defined status), and + # generate a flat list of rabbitvcs statuses + statuses = [] + index = 0 + directories = {} + for status_tuple in mercurial_statuses: + content = tuple_order[index] + for item in status_tuple: + st_path = self.get_absolute_path(item) + + rabbitvcs_status = rabbitvcs.vcs.status.MercurialStatus({ + "path": st_path, + "content": content + }) + statuses.append(rabbitvcs_status) + + # determine the statuses of the parent folders + dir_content = content + if content in self.STATUSES_FOR_REVERT: + dir_content = "modified" + + path_to_check = os.path.dirname(st_path) + while True: + if path_to_check not in directories or directories[path_to_check] not in self.STATUSES_FOR_COMMIT: + rabbitvcs_status = rabbitvcs.vcs.status.MercurialStatus({ + "path": path_to_check, + "content": dir_content + }) + statuses.append(rabbitvcs_status) + directories[path_to_check] = dir_content + + if path_to_check == "" or path_to_check == self.repository_path: + break + + path_to_check = os.path.split(path_to_check)[0] + + index += 1 + + return statuses + + def status(self, path, summarize=True, invalidate=False): + all_statuses = self.statuses(path, invalidate=invalidate) + + if summarize: + path_status = None + for st in all_statuses: + if st.path == path: + path_status = st + break + + if path_status: + path_status.summary = path_status.single + else: + path_status = rabbitvcs.vcs.status.Status.status_unknown(path) + else: + path_status = all_statuses[0] + + return path_status + + def is_working_copy(self, path): + if (os.path.isdir(path) and + os.path.isdir(os.path.join(path, ".hg"))): + return True + return False + + def is_in_a_or_a_working_copy(self, path): + if self.is_working_copy(path): + return True + + return (self.find_repository_path(os.path.split(path)[0]) != "") + + def is_versioned(self, path): + if self.is_working_copy(path): + return True + + st = self.status(path) + try: + return st.is_versioned() + except Exception, e: + log.error(e) + return False + + return False + + def is_locked(self, path): + return False + + def get_items(self, paths, statuses=[]): + if paths is None: + return [] + + items = [] + for path in paths: + st = self.statuses(path, invalidate=True) + for st_item in st: + if st_item.content == "modified" and os.path.isdir(st_item.path): + continue + + if st_item.content in statuses or len(statuses) == 0: + items.append(st_item) + + return items + + # + # Actions + # diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/mercurial/util.py rabbitvcs-0.15.2/rabbitvcs/vcs/mercurial/util.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/mercurial/util.py 1970-01-01 00:00:00.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/mercurial/util.py 2012-09-23 21:12:56.000000000 +0000 @@ -0,0 +1,75 @@ +# +# This is an extension to the Nautilus file manager to allow better +# integration with the Subversion source control system. +# +# Copyright (C) 2006-2008 by Jason Field +# Copyright (C) 2007-2008 by Bruce van der Kooij +# Copyright (C) 2008-2010 by Adam Plumb +# +# RabbitVCS is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# RabbitVCS is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with RabbitVCS; If not, see . +# + +import os + +def splitall(path): + """Split a path into all of its parts. + + From: Python Cookbook, Credit: Trent Mick + """ + allparts = [] + while 1: + parts = os.path.split(path) + if parts[0] == path: + allparts.insert(0, parts[0]) + break + elif parts[1] == path: + allparts.insert(0, parts[1]) + break + else: + path = parts[0] + allparts.insert(0, parts[1]) + return allparts + +def relativepath(fromdir, tofile): + """Find relative path from 'fromdir' to 'tofile'. + + An absolute path is returned if 'fromdir' and 'tofile' + are on different drives. Martin Bless, 2004-03-22. + """ + f1name = os.path.abspath(tofile) + if os.path.splitdrive(f1name)[0]: + hasdrive = True + else: + hasdrive = False + f1basename = os.path.basename(tofile) + f1dirname = os.path.dirname(f1name) + f2dirname = os.path.abspath(fromdir) + f1parts = splitall(f1dirname) + f2parts = splitall(f2dirname) + if hasdrive and (f1parts[0].lower() <> f2parts[0].lower()): + "Return absolute path since we are on different drives." + return f1name + while f1parts and f2parts: + if hasdrive: + if f1parts[0].lower() <> f2parts[0].lower(): + break + else: + if f1parts[0] <> f2parts[0]: + break + del f1parts[0] + del f2parts[0] + result = ['..' for part in f2parts] + result.extend(f1parts) + result.append(f1basename) + return os.sep.join(result) diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/status.py rabbitvcs-0.15.2/rabbitvcs/vcs/status.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/status.py 2010-12-28 17:04:41.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/status.py 2012-09-23 21:12:56.000000000 +0000 @@ -367,10 +367,35 @@ content=str(gittyup_status.identifier), metadata=None) +class MercurialStatus(Status): + vcs_type = 'mercurial' + + content_status_map = { + 'clean': status_normal, + 'added': status_added, + 'missing': status_missing, + 'unknown': status_unversioned, + 'removed': status_deleted, + 'modified': status_modified, + 'ignored': status_ignored + } + + metadata_status_map = { + 'normal': status_normal, + None: status_normal + } + + def __init__(self, mercurial_status): + super(MercurialStatus, self).__init__( + mercurial_status["path"], + content=str(mercurial_status["content"]), + metadata=None) + STATUS_TYPES = [ Status, SVNStatus, - GitStatus + GitStatus, + MercurialStatus ] class TestStatusObjects(unittest.TestCase): diff -Nru rabbitvcs-0.15.0.5/rabbitvcs/vcs/svn/__init__.py rabbitvcs-0.15.2/rabbitvcs/vcs/svn/__init__.py --- rabbitvcs-0.15.0.5/rabbitvcs/vcs/svn/__init__.py 2011-01-13 14:58:11.000000000 +0000 +++ rabbitvcs-0.15.2/rabbitvcs/vcs/svn/__init__.py 2012-09-23 21:12:56.000000000 +0000 @@ -276,6 +276,16 @@ path = realpath(path) return self.client.info(path) + def find_repository_path(self, path): + path_to_check = path + while path_to_check != "/" and path_to_check != "": + if os.path.isdir(os.path.join(path_to_check, ".svn")): + return path_to_check + + path_to_check = os.path.split(path_to_check)[0] + + return None + def status(self, path, summarize=True, invalidate=False): if path in self.cache: if invalidate: @@ -323,14 +333,17 @@ return False def is_in_a_or_a_working_copy(self, path): - return self.is_working_copy(path) or self.is_working_copy(os.path.split(path)[0]) + if self.is_working_copy(path): + return True + + return (self.find_repository_path(os.path.split(path)[0]) != "") def is_versioned(self, path): if self.is_working_copy(path): return True else: # info will return nothing for an unversioned file inside a working copy - if (self.is_working_copy(os.path.split(path)[0]) and + if (self.is_in_a_or_a_working_copy(path) and self.client_info(path)): return True @@ -441,7 +454,7 @@ info = self.client_info(path) returner = "" try: - returner = info["url"] + returner = info["url"].encode('latin1') except Exception, e: log.exception(e) @@ -1078,6 +1091,7 @@ "action": rabbitvcs.vcs.svn.commit_completed } self.client.callback_notify(dummy_commit_dict) + return retval def log(self, url_or_path, revision_start=Revision("head"), diff -Nru rabbitvcs-0.15.0.5/setup.py rabbitvcs-0.15.2/setup.py --- rabbitvcs-0.15.0.5/setup.py 2011-11-09 19:11:00.000000000 +0000 +++ rabbitvcs-0.15.2/setup.py 2012-09-23 21:12:59.000000000 +0000 @@ -48,7 +48,7 @@ # This will eventually be passed to the setup function, but we already need them # for doing some other stuff so we have to declare them here. name = "rabbitvcs" -version = "0.15.0.5" +version = "0.15.2" description = "Easy version control" long_description = """RabbitVCS is a set of graphical tools written to provide simple and straightforward access to the version control systems you use.""" author = "Bruce van der Kooij"