by
Changes to 146 files · Browse files at 1788ca3385fa Showing diff from parent cdcc0f4e1922 071ea4834dc4 Diff from another changeset...
@@ -3,7 +3,6 @@ *.orig
*.rej
*.pyc
-thgutil/__version__.py
build/
build-ja/
dist/
@@ -29,4 +28,6 @@glob:win32/shellext/shellext.vcproj.*
glob:win32/shellext/Release/
glob:.DS_Store
+glob:win32/*.reg
glob:*~
+glob:tortoisehg/util/__version__.py
|
@@ -35,13 +35,13 @@ pfile = pfile[:-1]
path = os.path.dirname(os.path.dirname(os.path.realpath(pfile)))
thgpath = os.path.normpath(path)
- testpath = os.path.join(thgpath, 'thgutil')
+ testpath = os.path.join(thgpath, 'tortoisehg')
if os.path.isdir(testpath) and thgpath not in sys.path:
sys.path.insert(0, thgpath)
_thg_path()
-from thgutil import paths, debugthg, hglib, cachethg
-from hggtk import gtklib
+from tortoisehg.util import paths, debugthg, hglib, cachethg
+from tortoisehg.hgtk import gtklib
if debugthg.debug('N'):
debugf = debugthg.debugf
@@ -62,7 +62,7 @@ self.allvfs = {}
self.inv_dirs = set()
- from thgutil import menuthg
+ from tortoisehg.util import menuthg
self.hgtk = paths.find_in_path('hgtk')
self.menu = menuthg.menuThg()
self.notify = os.path.expanduser('~/.tortoisehg/notify')
|
@@ -2,6 +2,6 @@
mkdir -p rpmbuild/{SOURCES,BUILD}
hg archive -t tgz rpmbuild/SOURCES/tortoisehg-hg.tar.gz
-rpmbuild --define "_topdir $(pwd)/rpmbuild" -ba $(dirname $0)/tortoisehg.spec
+rpmbuild --define "_topdir $(pwd)/rpmbuild" -ba $(dirname $0)/tortoisehg.spec || exit 1
rm -rf rpmbuild/BUILD/
ls -l rpmbuild/{RPMS/*,SRPMS}/tortoisehg-*.rpm
|
@@ -8,9 +8,13 @@ Summary: Mercurial GUI command line tool hgtk
Group: Development/Tools
License: GPLv2
+# Few files are under the more permissive GPLv2+
URL: http://bitbucket.org/tortoisehg/stable/wiki/
-Source0: tortoisehg-%{version}.tar.gz
+Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# This package should be noarch, but we can't do it because the nautilus
+# subpackage has to be arch-specific (because of lib64)
+# BuildArch: noarch
BuildRequires: python, python-devel, gettext, python-sphinx
Requires: python >= 2.4, python-iniparse, mercurial >= 1.3, gnome-python2-gconf
Requires: gnome-python2-gtksourceview, pycairo, pygobject2, pygtk2 >= 2.10
@@ -32,21 +36,22 @@%prep
%setup -q
-# Fix for nautilus python extensions in lib64 on x86_64
-sed -i "s,lib/nautilus,%{_lib}/nautilus,g" setup.py
+# Fedora Nautilus python extensions lives in lib64 on x86_64 (https://bugzilla.redhat.com/show_bug.cgi?id=509633) ...
+%{__sed} -i "s,lib/nautilus,%{_lib}/nautilus,g" setup.py
-cat > thgutil/config.py << EOT
+cat > tortoisehg/util/config.py << EOT
bin_path = "%{_bindir}"
license_path = "%{_docdir}/%{name}-%{version}/COPYING.txt"
locale_path = "%{_datadir}/locale"
icon_path = "%{_datadir}/pixmaps/tortoisehg/icons"
+nofork = True
EOT
%build
%{__python} setup.py build
-cd doc
-make html
+(cd doc && make html)
+rm doc/build/html/.buildinfo
%install
rm -rf $RPM_BUILD_ROOT
@@ -55,18 +60,20 @@
install -m 644 -D contrib/_hgtk $RPM_BUILD_ROOT/%{_datadir}/zsh/site-functions/_hgtk
+%find_lang %{name}
+
%clean
rm -rf $RPM_BUILD_ROOT
-%files
+%files -f %{name}.lang
+
%defattr(-,root,root,-)
%doc COPYING.txt ReleaseNotes.txt doc/build/html/
%{_bindir}/hgtk
-%{python_sitelib}/hggtk/
-%{python_sitelib}/thgutil/
+%{python_sitelib}/tortoisehg/
%{python_sitelib}/tortoisehg-*.egg-info
%{_datadir}/pixmaps/tortoisehg/
-%{_datadir}/locale/*/LC_MESSAGES/tortoisehg.mo
+
# /usr/share/zsh/site-functions/ is owned by zsh package which we don't want to
# require. We also don't want to create a sub-package just for this dependency.
# Instead we just claim ownership of the zsh top folder ...
|
@@ -98,6 +98,7 @@ ;zeroconf =
; Extra extensions bundled with TortoiseHg
;fold =
+;hgcr-gui =
; To use cleverencode/cleverdecode, you must enable win32text extension
;
|
|
@@ -18,7 +18,6 @@ AppUpdatesURL=http://bitbucket.org/tortoisehg/stable/
AppID=TortoiseHg
AppContact=Steve Borho <steve@borho.org>
-AppMutex=thgtaskbar,Global\thgtaskbar
OutputBaseFilename=TortoiseHg-{#VERSION}
DefaultDirName={pf}\TortoiseHg
SourceDir=..\..
@@ -58,10 +57,11 @@Source: ..\build-hg\contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme
Source: ..\build-hg\templates\*.*; DestDir: {app}\templates; Flags: recursesubdirs createallsubdirs
Source: ..\build-hg\locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs
-Source: ..\build-hg\i18n\*.*; DestDir: {app}\i18n; Flags:
+Source: ..\build-hg\i18n\*.*; DestDir: {app}\i18n; Flags:
Source: ..\build-hg\doc\*.html; DestDir: {app}\docs; Flags: ; Components: help
Source: {app}\Mercurial.ini; DestDir: {app}\backup; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini; AfterInstall: FileExpandString('{app}\Mercurial.ini')
+Source: contrib\win32\mercurialuser.ini; DestDir: {%USERPROFILE}; DestName: Mercurial.ini; AfterInstall: FileExpandStringEx('{%USERPROFILE}\Mercurial.ini'); Flags: onlyifdoesntexist
Source: ReleaseNotes.txt; DestDir: {app}; DestName: ReleaseNotes.txt
Source: ..\contrib\*.exe; DestDir: {app}; Flags:
Source: ..\contrib\*.dll; DestDir: {app}; Flags:
@@ -76,11 +76,13 @@Source: icons\*; DestDir: {app}\icons; Flags: ignoreversion recursesubdirs createallsubdirs
Source: dist\gtk\*; DestDir: {app}\gtk; Flags: ignoreversion recursesubdirs createallsubdirs
Source: locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs
-Source: i18n\*.*; DestDir: {app}\i18n; Flags:
+Source: i18n\*.*; DestDir: {app}\i18n; Flags: recursesubdirs createallsubdirs
+Source: win32\*.reg; DestDir: {app}\cmenu_i18n;
Source: COPYING.txt; DestDir: {app}; DestName: Copying.txt
Source: icons\thg_logo.ico; DestDir: {app}
Source: ..\misc\hgbook.pdf; DestDir: {app}/docs; Components: hgbook
Source: ..\misc\ThgShellx86.dll; DestDir: {app}; DestName: ThgShell.dll; Check: not Is64BitInstallMode; Flags: ignoreversion restartreplace uninsrestartdelete; Components: shell
+Source: ..\misc\ThgShellx86.dll; DestDir: {app}; DestName: ThgShellx86.dll; Check: Is64BitInstallMode; Flags: ignoreversion restartreplace uninsrestartdelete; Components: shell
Source: ..\misc\ThgShellx64.dll; DestDir: {app}; DestName: ThgShell.dll; Check: Is64BitInstallMode; Flags: ignoreversion restartreplace uninsrestartdelete; Components: shell
[INI]
@@ -102,7 +104,7 @@;Filename: {tmp}\vcredist_x86.exe; Parameters: /q; Check: ShouldInstallVCPPSP1 and not Is64BitInstallMode
;Filename: {tmp}\vcredist_x64.exe; Parameters: /q; Check: ShouldInstallVCPPSP1 and Is64BitInstallMode
Filename: {app}\add_path.exe; Parameters: {app}; StatusMsg: Adding the installation path to the search path...
-Filename: msiexec.exe; Parameters: "/i ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.6.16523-win32.msi"" /qn /norestart ALLUSERS=1"; Check: not Is64BitInstallMode; Components: shell; StatusMsg: Installing TortoiseOverlays.dll ...
+Filename: msiexec.exe; Parameters: "/i ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.6.16523-win32.msi"" /qn /norestart ALLUSERS=1"; Components: shell; StatusMsg: Installing TortoiseOverlays.dll ...
Filename: msiexec.exe; Parameters: "/i ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.6.16523-x64.msi"" /qn /norestart ALLUSERS=1"; Check: Is64BitInstallMode; Components: shell; StatusMsg: Installing TortoiseOverlays.dll ...
[UninstallRun]
@@ -172,16 +174,60 @@ SP1Missing := True;
end;
-function ShouldSkipPage(PageID: Integer): Boolean;
-begin
- { Skip wpSelectDir page if upgrading; show all others }
- case PageID of
- wpSelectDir:
- Result := IsUpgrade;
- else
- Result := False;
- end;
-end;
+var UserInfoPage: TInputQueryWizardPage;
+var GetUserName: Boolean;
+
+procedure InitializeWizard();
+begin
+ if (not(FileExists(ExpandConstant('{%USERPROFILE}\Mercurial.ini')))) then
+ begin
+ // Create the page
+ UserInfoPage := CreateInputQueryPage(wpUserInfo,
+ 'Personal Information', 'Who are you?',
+ 'Please specify your name and email address, then click Next.');
+
+ // Add items (False means it's not a password edit)
+ UserInfoPage.Add('Full Name:', False);
+ UserInfoPage.Add('Email address:', False);
+
+ // Set initial values (optional)
+ UserInfoPage.Values[0] := ExpandConstant('{username}');
+ GetUserName := True;
+ end
+ else
+ GetUserName := False;
+end;
+
+procedure FileExpandStringEx(fn: String);
+var
+ InFile: String;
+ i: Integer;
+ InFileLines: TArrayOfString;
+begin
+ if (GetUserName) then
+ begin
+ InFile := ExpandConstant(fn);
+ LoadStringsFromFile(InFile, InFileLines);
+ for i:= 0 to GetArrayLength(InFileLines)-1 do
+ begin
+ InFileLines[i] := ExpandConstantEx(InFileLines[i],
+ 'hgusername',
+ UserInfoPage.Values[0] + ' <' + UserInfoPage.Values[1] + '>');
+ end;
+ SaveStringsToFile(InFile, InFileLines, False);
+ end;
+end;
+
+function ShouldSkipPage(PageID: Integer): Boolean;
+begin
+ { Skip wpSelectDir page if upgrading; show all others }
+ case PageID of
+ wpSelectDir:
+ Result := IsUpgrade;
+ else
+ Result := False;
+ end;
+end;
function TerminateThgTaskbar(): Boolean;
var
|
|
@@ -0,0 +1,5 @@ + ; User specific Mercurial config file.
+; See the hgrc man page for details.
+
+[ui]
+username = {hgusername}
|
|
@@ -5,8 +5,12 @@ ; register TortoiseHg config info
Root: HKLM; Subkey: Software\TortoiseHgShell; Flags: uninsdeletekey; Components: shell
Root: HKLM; Subkey: Software\TortoiseHgShell; ValueType: string; ValueName: ; ValueData: {app}; Components: shell
+Root: HKLM32; Subkey: Software\TortoiseHgShell; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKLM32; Subkey: Software\TortoiseHgShell; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {app}; Components: shell
Root: HKLM; Subkey: Software\TortoiseHg; Flags: uninsdeletekey
Root: HKLM; Subkey: Software\TortoiseHg; ValueType: string; ValueName: ; ValueData: {app}
+Root: HKLM32; Subkey: Software\TortoiseHg; Check: Is64BitInstallMode; Flags: uninsdeletekey
+Root: HKLM32; Subkey: Software\TortoiseHg; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {app}
; overlay handler COM controls
; Normal
@@ -14,53 +18,89 @@Root: HKCR; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {app}\THgShellx86.dll; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
; Added
Root: HKCR; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {app}\THgShellx86.dll; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
; Modified
Root: HKCR; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {app}\THgShellx86.dll; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
; Unversioned
Root: HKCR; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell
Root: HKCR; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {app}\THgShellx86.dll; Components: shell
+Root: HKCR32; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell
; The actual icon overlay handlers for Explorer
Root: HKLM; Subkey: Software\TortoiseOverlays\Normal; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKLM; Subkey: Software\TortoiseOverlays\Added; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA1-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKLM; Subkey: Software\TortoiseOverlays\Modified; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA2-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKLM; Subkey: Software\TortoiseOverlays\Unversioned; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA6-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKLM32; Subkey: Software\TortoiseOverlays\Normal; Check: Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKLM32; Subkey: Software\TortoiseOverlays\Added; Check: Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA1-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKLM32; Subkey: Software\TortoiseOverlays\Modified; Check: Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA2-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKLM32; Subkey: Software\TortoiseOverlays\Unversioned; Check: Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: {{B456DBA6-7BF4-478c-937A-05130C2C212E}; Components: shell
; Make them approved by administrator
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; ValueType: string; ValueName: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; ValueType: string; ValueName: {{B456DBA1-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; ValueType: string; ValueName: {{B456DBA2-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; ValueType: string; ValueName: {{B456DBA6-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
+Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
+Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: {{B456DBA1-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
+Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: {{B456DBA2-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
+Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: {{B456DBA6-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: uninsdeletevalue; Components: shell
; Context menu handlers
Root: HKCR; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKCR32; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKCR; Subkey: Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKCR32; Subkey: Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKCR; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKCR32; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKCR; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKCR32; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKCR; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKCR32; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
Root: HKCR; Subkey: InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: uninsdeletekey; Components: shell
Root: HKCR; Subkey: InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
+Root: HKCR32; Subkey: InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell
+Root: HKCR32; Subkey: InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell
|
@@ -1,7 +1,7 @@ [py2exe]
excludes=pywin, pywin.dialogs, pywin.dialogs.list, PyQt, PyQt4.QtCode, PyQt4.QtGui
includes=cairo, pango, pangocairo, atk, gobject, dbhash, gtk.keysyms
-packages=ctypes, email, hgext, hgext.convert, encodings, hggtk, hggtk.logview, thgutil, iniparse, pygments
+packages=ctypes, email, hgext, hgext.convert, encodings, tortoisehg.hgtk, tortoisehg.hgtk.logview, tortoisehg.util, iniparse, pygments
dll_excludes=iconv.dll, intl.dll, libatk-1.0-0.dll, libgdk_pixbuf-2.0-0.dll, libgdk-win32-2.0-0.dll, libglib-2.0-0.dll, libgmodule-2.0-0.dll, libgobject-2.0-0.dll, libgthread-2.0-0.dll, libgtk-win32-2.0-0.dll, libpango-1.0-0.dll, libpangowin32-1.0-0.dll, libcairo-2.dll, libglade-2.0-0.dll, libpangocairo-1.0-0.dll, libpangoft2-1.0-0.dll
|
|
|
@@ -1,235 +0,0 @@ - #!/usr/bin/env python
-#
-# This is the mercurial setup script.
-#
-# 'python setup.py install', or
-# 'python setup.py --help' for more options
-
-import sys
-if not hasattr(sys, 'version_info') or sys.version_info < (2, 3, 0, 'final'):
- raise SystemExit("Mercurial requires python 2.3 or later.")
-
-# Solaris Python packaging brain damage
-try:
- import hashlib
- sha = hashlib.sha1()
-except:
- try:
- import sha
- except:
- raise SystemExit(
- "Couldn't import standard hashlib (incomplete Python install).")
-
-try:
- import zlib
-except:
- raise SystemExit(
- "Couldn't import standard zlib (incomplete Python install).")
-
-import os, time
-import shutil
-import tempfile
-from distutils.core import setup, Extension
-from distutils.dist import Distribution
-from distutils.command.install_data import install_data
-from distutils.command.build import build
-from distutils.command.build_py import build_py
-from distutils.spawn import spawn, find_executable
-from distutils.ccompiler import new_compiler
-
-extra = {}
-scripts = ['hg']
-if os.name == 'nt':
- scripts.append('contrib/win32/hg.bat')
-
-# simplified version of distutils.ccompiler.CCompiler.has_function
-# that actually removes its temporary files.
-def has_function(cc, funcname):
- tmpdir = tempfile.mkdtemp(prefix='hg-install-')
- devnull = oldstderr = None
- try:
- try:
- fname = os.path.join(tmpdir, 'funcname.c')
- f = open(fname, 'w')
- f.write('int main(void) {\n')
- f.write(' %s();\n' % funcname)
- f.write('}\n')
- f.close()
- # Redirect stderr to /dev/null to hide any error messages
- # from the compiler.
- # This will have to be changed if we ever have to check
- # for a function on Windows.
- devnull = open('/dev/null', 'w')
- oldstderr = os.dup(sys.stderr.fileno())
- os.dup2(devnull.fileno(), sys.stderr.fileno())
- objects = cc.compile([fname])
- cc.link_executable(objects, os.path.join(tmpdir, "a.out"))
- except:
- return False
- return True
- finally:
- if oldstderr is not None:
- os.dup2(oldstderr, sys.stderr.fileno())
- if devnull is not None:
- devnull.close()
- shutil.rmtree(tmpdir)
-
-# py2exe needs to be installed to work
-try:
- import py2exe
-
- # Help py2exe to find win32com.shell
- try:
- import modulefinder
- import win32com
- for p in win32com.__path__[1:]: # Take the path to win32comext
- modulefinder.AddPackagePath("win32com", p)
- pn = "win32com.shell"
- __import__(pn)
- m = sys.modules[pn]
- for p in m.__path__[1:]:
- modulefinder.AddPackagePath(pn, p)
- except ImportError:
- pass
-
- extra['console'] = [
- {'script':'hg', 'icon_resources':[(0,'icons/hg.ico')]},
- {'script':'hgtk', 'icon_resources':[(0,'icons/thg_logo.ico')]}
- ]
- extra['windows'] = [
- {'script':'thgtaskbar.py',
- 'icon_resources':[(0,'icons/thg_logo.ico')]}
- ]
-except ImportError:
- pass
-
-try:
- from mercurial.__version__ import version
-except ImportError:
- version = 'unknown'
-
-class install_package_data(install_data):
- def finalize_options(self):
- self.set_undefined_options('install',
- ('install_lib', 'install_dir'))
- install_data.finalize_options(self)
-
-class build_mo(build):
-
- description = "build translations (.mo files)"
-
- def run(self):
- if not find_executable('msgfmt'):
- self.warn("could not find msgfmt executable, no translations "
- "will be built")
- return
-
- podir = 'i18n'
- if not os.path.isdir(podir):
- self.warn("could not find %s/ directory" % podir)
- return
-
- join = os.path.join
- for po in os.listdir(podir):
- if not po.endswith('.po'):
- continue
- pofile = join(podir, po)
- modir = join('locale', po[:-3], 'LC_MESSAGES')
- mofile = join(modir, 'hg.mo')
- cmd = ['msgfmt', '-v', '-o', mofile, pofile]
- if sys.platform != 'sunos5':
- # msgfmt on Solaris does not know about -c
- cmd.append('-c')
- self.mkpath(modir)
- self.make_file([pofile], mofile, spawn, (cmd,))
- self.distribution.data_files.append((join('mercurial', modir),
- [mofile]))
-
-build.sub_commands.append(('build_mo', None))
-
-Distribution.pure = 0
-Distribution.global_options.append(('pure', None, "use pure (slow) Python "
- "code instead of C extensions"))
-
-class hg_build_py(build_py):
-
- def finalize_options(self):
- build_py.finalize_options(self)
-
- if self.distribution.pure:
- if self.py_modules is None:
- self.py_modules = []
- for ext in self.distribution.ext_modules:
- if ext.name.startswith("mercurial."):
- self.py_modules.append("mercurial.pure.%s" % ext.name[10:])
- self.distribution.ext_modules = []
-
- def find_modules(self):
- modules = build_py.find_modules(self)
- for module in modules:
- if module[0] == "mercurial.pure":
- if module[1] != "__init__":
- yield ("mercurial", module[1], module[2])
- else:
- yield module
-
-cmdclass = {'install_data': install_package_data,
- 'build_mo': build_mo,
- 'build_py': hg_build_py}
-
-ext_modules=[
- Extension('mercurial.base85', ['mercurial/base85.c']),
- Extension('mercurial.bdiff', ['mercurial/bdiff.c']),
- Extension('mercurial.diffhelpers', ['mercurial/diffhelpers.c']),
- Extension('mercurial.mpatch', ['mercurial/mpatch.c']),
- Extension('mercurial.parsers', ['mercurial/parsers.c']),
- ]
-
-packages = ['mercurial', 'mercurial.hgweb', 'hgext', 'hgext.convert',
- 'hgext.highlight', 'hgext.zeroconf', 'hggtk',
- 'hggtk.logview', 'thgutil', 'iniparse']
-
-try:
- import msvcrt
- ext_modules.append(Extension('mercurial.osutil', ['mercurial/osutil.c']))
-except ImportError:
- pass
-
-try:
- import posix
- ext_modules.append(Extension('mercurial.osutil', ['mercurial/osutil.c']))
-
- if sys.platform == 'linux2' and os.uname()[2] > '2.6':
- # The inotify extension is only usable with Linux 2.6 kernels.
- # You also need a reasonably recent C library.
- cc = new_compiler()
- if has_function(cc, 'inotify_add_watch'):
- ext_modules.append(Extension('hgext.inotify.linux._inotify',
- ['hgext/inotify/linux/_inotify.c']))
- packages.extend(['hgext.inotify', 'hgext.inotify.linux'])
-except ImportError:
- pass
-
-datafiles = []
-for root in ('templates', 'i18n'):
- for dir, dirs, files in os.walk(root):
- datafiles.append((os.path.join('mercurial', dir),
- [os.path.join(dir, file_) for file_ in files]))
-
-setup(name='mercurial',
- version=version,
- author='Matt Mackall',
- author_email='mpm@selenic.com',
- url='http://selenic.com/mercurial',
- description='Scalable distributed SCM',
- license='GNU GPL',
- scripts=scripts,
- packages=packages,
- ext_modules=ext_modules,
- data_files=datafiles,
- cmdclass=cmdclass,
- options=dict(bdist_mpkg=dict(zipdist=True,
- license='COPYING',
- readme='contrib/macosx/Readme.html',
- welcome='contrib/macosx/Welcome.html')),
- **extra)
|
@@ -1,3 +1,20 @@ Describe path editing and [auth] hgrc section
Need a page explaining merges and merge undo (tie together various parts)
Describe how to use hgfold to correct case-folding conflicts
+
+intro: cmenu reg files will be included in the installer
+
+update screenshots
+.. figure:: figures/cmenu-nofiles.jpg
+.. figure:: figures/init.png
+.. figure:: figures/share.png
+.. figure:: figures/clone.png
+.. {{images/image001.png}} (intro: overlay example)
+.. figure:: figures/synchronize.png (syncbar closeup)
+.. figure:: figures/hgcmd.jpg (show cmdwidget)
+.. figure:: figures/cmenu-files.jpg
+.. figure:: figures/overlayicons.png
+.. figure:: figures/taskbarui.jpg
+.. figure:: figures/rename.jpg
+.. figure:: figures/init.png
+.. figure:: figures/settings.png
|
@@ -49,9 +49,9 @@ # built documents.
#
# The short X.Y version.
-version = '0.8'
+version = '0.9'
# The full version, including alpha/beta/rc tags.
-release = '0.8.2'
+release = '0.9.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
|
@@ -122,14 +122,6 @@ .. [#rcm6] Only sensitive if the selected revision is your current working
directory parent
-Revision Filter Dialog
-----------------------
-
-.. figure:: figures/logfilter.jpg
- :alt: Revision filter dialog
-
- Log Filtering Dialog
-
File Context Menus
------------------
@@ -206,6 +198,15 @@ Number of revisions to read in each batch load
:guilabel:`Copy Hash`
Copy a revision's changeset id hash to the clipboard when selected
+ :guilabel:`Dead Branches`
+ Comma separated list of branch names that should be ignored
+ when building a list of branch names for a repository.
+ :guilabel:`Branch Colors`
+ Space separated list of branch names and colors on the
+ form branch:#XXXXXX. Spaces and colons in the branch name must be
+ escaped using a backslash (\\). Likewise some other characters
+ can be escaped in this way, e.g. \\u0040 will be decoded to the
+ @ character, and \\n to a linefeed.
The exact colors given to particular users can be configured by adding
lines like these to your :file:`Mercurial.ini` file: ::
|
@@ -14,22 +14,27 @@ Clone Dialog
:guilabel:`Source Path`
- It is the path (or URL) of the repository that will be cloned. Use the :guilabel:`Browse...` to
- choose a local folder.
+ It is the path (or URL) of the repository that will be cloned. Use
+ the :guilabel:`Browse...` to choose a local folder.
:guilabel:`Destination Path`
- It is the path of destination directory, a folder with the same name of source repository will
- be created within this directory.
+ It is the path of destination directory, a folder with the same name
+ of source repository will be created within this directory.
+
+Under the :guilabel:`Advanced options` expander you will find:
+
:guilabel:`Clone To Revision`
- You can limit the clone up to this revision. Even the tags created after this revision will not be
- imported.
+ You can limit the clone up to this revision. Even the tags created
+ after this revision will not be imported.
:guilabel:`do not update the new working directory`
- If checked, after the clone the working directory will be empty. It is useful when you have to clone
- a repository with the purpose of central repository, or backup, where you have only, in the future,
+ If checked, after the clone the working directory will be empty. It
+ is useful when you have to clone a repository with the purpose of
+ central repository, or backup, where you have only, in the future,
to *push* and *pull*.
:guilabel:`use pull protocol to copy metadata`
- When the source and destination are on the same filesystem, Mercurial tries to use hardlinks. Some
- filesystems, such as AFS implement hardlink incorrectly, but do not report errors. Use this option
- to avoid hardlinks.
+ When the source and destination are on the same filesystem,
+ Mercurial tries to use hardlinks. Some filesystems, such as AFS
+ implement hardlink incorrectly, but do not report errors. Use this
+ option to avoid hardlinks.
:guilabel:`use uncompressed transfer`
To use uncompressed transfer (fast over LAN).
:guilabel:`use proxy server`
|
|
|
@@ -10,12 +10,14 @@ proper configuration. See
`issue #82 <http://bitbucket.org/tortoisehg/stable/issue/82/>`_.
-The commit tool is an important part of TortoiseHg. It is, in fact, the
-only component that defaults to the top level shell context menu. This
-is mainly because it is the most heavily used tool. Not only can you
-commit your changes, but you can examine the state of your working
-directory and perform most routine maintenance tasks (add new files,
-record renames, manage the repository ignore filter, etc).
+The commit tool is one of the main two applications of TortoiseHg.
+Together with the Repository Explorer (aka, the changelog tool) these
+two tools can perform or access nearly every function that TortoiseHg
+supports.
+
+Not only can the commit tool commit your changes, but it can examine the
+state of your working directory and perform most routine maintenance
+tasks (add new files, record renames, manage the ignore filter, etc).
.. figure:: figures/commit.png
:alt: Commit dialog
@@ -25,17 +27,29 @@Features
--------
-Walking across the toolbar buttons:
+At the top of the commit tool is a menu bar, newly introduced in version 0.9.
- :guilabel:`Refresh`
- Reload the state of the working directory. It tries to retain
- check and selection state across refresh.
+ :guilabel:`Tools`
+ Launch common TortoiseHg tools in separate processes
+ :guilabel:`View`
+ Toggle the display of optional features, or refresh the working
+ directory contents.
+ :guilabel:`Operations`
+ These menu items correspond to the toolbar buttons.
+ :guilabel:`Help`
+ Open a web browser to this web page, or launch TortoiseHg About
+ dialog.
+
+Enumerating the toolbar buttons:
+
:guilabel:`Commit`
Commit selected diffs in checked files.
:guilabel:`Undo`
Undo (rollback) last immediate commit. Your commit message will be
- available in the message history, so you can re-do the commit after
- fixing whatever problem you noticed.
+ available in the message history, so you can easily repeat the
+ commit if necessary.
+ :guilabel:`Diff`
+ Visual diff checked files.
:guilabel:`Revert`
Revert checked files to last revisioned state. If merging, it
allows you to select the revert parent.
@@ -47,6 +61,11 @@ :guilabel:`Remove`
Delete checked unversioned files and/or remove (mark as deleted) any
versioned files.
+ :guilabel:`Forget`
+ Forget checked versioned files.
+ :guilabel:`Refresh`
+ Reload the state of the working directory. It tries to retain
+ check and selection state across refresh.
Below the toolbar are useful widgets:
@@ -79,10 +98,16 @@ merge section below.
4) The canonical path of the file (relative to the repository root)
-Below the file list are checkboxes that toggle the display of the
-various classes of files {modified, added, removed, deleted, unknown,
-clean, ignored}. These check boxes will be disabled if the commit tool
-was given a specific set of files and/or directories.
+.. note::
+ If the commit tool was started with a file pattern or selection, a
+ button will appear at the bottom of the file list that can clear the
+ file pattern and give you an unfiltered view of the entire working
+ directory.
+
+Below the file list, inside an expander, are checkboxes that toggle the
+display of the various classes of files {modified, added, removed,
+deleted, unknown, clean, ignored}. These check boxes will be disabled
+if the commit tool was started with a file pattern or selection.
*Removed* means a revisioned file has been marked as removed. *Deleted*
means a revisioned file is missing but Mercurial has not been told to
@@ -105,19 +130,74 @@*Ignored* files are untracked files that match a configured ignore
pattern. Neither of those file types are shown by default, unless a the
user includes such a file in a selection (explorer) or provides the file
-on the command line.
+name on the command line.
+.. figure:: figures/parentbar.png
+ :alt: Parent bar
+
+ Parent bar in commit dialog
+
+Below both the file list and diff pane is a narrow
+:guilabel:`Parents Bar`. This bar shows you the current working
+directory parent(s), and gives you some warnings if a commit would
+introduce a new head. The parents bar can be hidden by an option in the
+:guilabel:`View` menu.
+
+To the right of the file list is the diff pane. The diff pane is newly
+tabbed in the 0.9 release.
+
+ :guilabel:`Text Diff`
+ Shows the textual diffs in the currently selected file.
+ :guilabel:`Hunk Selection`
+ In releases 0.7 through 0.8, this tab was the only content shown
+ to the user. The diffs in this tab can be toggled per "hunk",
+ allowing the user to cherry pick changes to be included in the
+ commit. As in 0.8, this tab only shows diff hunks for the
+ currently selected file. This tab cannot show binary diffs or
+ renames. That data can only be seen in the Text Diff tab.
+ :guilabel:`Commit Preview`
+ This tab previews all of the selected hunks in every checked
+ file, essentially a preview of what will be committed when you
+ press the commit button.
+ :guilabel:`Patch Contents`
+ Only visible when the commit tool is in QRefresh mode. It
+ displays the current contents of the patch being refreshed.
+
+.. figure:: figures/advancedbar.png
+ :alt: Advanced bar
+
+ Advanced bar in commit dialog
+
+If the :guilabel:`Advanced Bar` is enabled in the :guilabel:`View` menu,
+a bar is inserted between the toolbar and the message history bar. The
+advanced bar contains:
+
+ :guilabel:`Committer`
+ The username to use for this commit. This value is usually read
+ from your Mercurial.ini file, but it can be specified on the
+ hgtk command line or read from a patch file. Lastly, the user
+ could manually specify a different username here.
+ :guilabel:`Auto-includes`
+ A text entry that allows the user to modify the comma separated
+ list of files that are always included in the commit list,
+ regardless of whether they have been checked. This is intended
+ for use in repositories that have pre-commit hooks that modify
+ certain files (say a changelog).
+ :guilabel:`Push after commit`
+ A toggle button that determines whether TortoiseHg will attempt
+ to push outgoing changes to your default push target after each
+ successful commit.
Change Selection
----------------
-So what does it mean when we say the commit button will commit the
-selected diffs in checked files? Simple, the native TortoiseHg commit
-tool supports change selection intrinsically in the diff browser. This
-means that all of the changes you make to versioned files can be
-individually selected to be included in the commit or left out of the
-commit (but left in the working directory). Fans of darcs or
-Mercurial's record extension will recognize this immediately.
+So what does the phrase 'commit the selected diffs in checked files'
+mean? Simple, the TortoiseHg commit tool supports change selection
+intrinsically in the diff browser. This means that all of the changes
+you make to versioned files can be individually selected to be included
+in the commit or left out of the commit (but left in the working
+directory). Fans of darcs or Mercurial's record extension will
+recognize this feature immediately.
When is this necessary?
^^^^^^^^^^^^^^^^^^^^^^^
@@ -131,19 +211,20 @@How does it work?
^^^^^^^^^^^^^^^^^
-By double-clicking on individual change hunks in the diff panel.
-*Technically, any action which activates a change hunk row will toggle
-it's selection status. The spacebar will also work.* When a hunk is
-unselected, the syntax highlighting of the diff is disabled and the
-background is turned gray. At the same time, the file's diff header is
-updated to show the current selection state, the selected hunk count and
-changed lines will be updated. Toggle the hunk a second time to reselect
-it for inclusion in your commit.
+By double-clicking on individual change hunks in the
+:guilabel:`Hunk Selection` tab of the diff panel. *Technically, any
+action which activates a change hunk row will toggle it's selection
+status. The spacebar will also work.* When a hunk is unselected, the
+syntax highlighting of the diff is disabled and the background is turned
+gray. At the same time, the file's diff header is updated to show the
+current selection state, the selected hunk count and changed lines will
+be updated. Toggle the hunk a second time to reselect it for inclusion
+in your commit.
When a file is partially selected for commit, it's icon is changed from
a checkbox to a radio button. At a glance at the file list, you should
be able to find which files are entirely included in the commit,
-partially included, or excluded entirely.
+partially included, or entirely excluded.
What happens at commit time?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -165,7 +246,8 @@on Windows unfortunately has a probability greater than 0. If some
program (virus checker, compiler) locks your file in the middle of this
process you may see an error about a failed patch. These errors are
-recoverable. Delete any new :file:`.rej` files and try the commit again.
+recoverable. Delete any new :file:`.rej` files left in your repository
+and retry the commit.
@@ -173,12 +255,15 @@-------------------
:kbd:`Ctrl-Enter`
- will trigger the commit
+ Trigger the commit
:kbd:`Ctrl-C`
- In the diff panel will copy the currently highlighted (not selected,
- but highlighted) diff hunks to the clipboard. These can be pasted
- into a text buffer to generate any arbitrary patch based from the
- changes in your working directory.
+ When pressed in the diff panel, ctrl-c will copy the currently
+ highlighted (repeat highlighted, not selected) diff hunks to the
+ clipboard. These can be pasted into a text buffer to generate any
+ arbitrary patch based from the changes in your working directory.
+:kbd:`Alt-Q`
+ Reflow the paragraph currently under the cursor. You must configure
+ a message format policy for this key combination to work.
The code which copies the hunks to the clipboard is intelligent about
diff headers. The clipboard contents will always be a valid patch.
@@ -187,14 +272,8 @@File Context Menus
------------------
-By right clicking on a file in the file list, you will get a context
-menu of commands that are applicable to the selected file. If multiple
-files are selected, the context menu only applies to the first selected
-file.
-
-If you have configured a visual editor (in
-:menuselection:`Global Settings --> TortoiseHg --> Visual Editor`)
-this includes an option to open the file in your editor.
+When right clicking on files in the file list, you will get a context
+menu of commands that are applicable to the selected files.
For unknown **?** files, the context menu will allow you to detect
renames (if you think the unknown file is a copy or rename of a
@@ -209,18 +288,21 @@The commit tool has a special mode when it is opened in a repository
that is in a merged state (technically, this means the current working
directory has two parent revisions). The file list has no checkboxes and
-the diff pane does not allow selections. The commit 'manifest' is
-essentially immutable, since you must commit the entire working
-directory after a merge.
+the hunk selection tabs are hidden. The commit 'manifest' is essentially
+immutable, since you must commit the entire working directory after a
+merge.
The merge state *ms* column is especially useful in this mode. Files
that are marked with *R* are files where Mercurial and/or the user have
-successfully merged (resolved) changes from both branches. Files that
-are marked with *U* have unresolved changes. You can use the *resolve*
-context menu option to restart the merge for that file, or you can use
-the *edit* context menu option to resolve the conflict by hand. When the
-conflict has been resolved, you use the *mark resolved* context menu
-option, which changes the file's merge state to *R*.
+successfully merged (resolved) changes from both parents. Files that
+are marked with *U* have unresolved changes. You can use the *Restart
+Merge* context menu option to restart the merge for those files, or you
+can use the *edit* context menu option to resolve the conflict by hand.
+The *Restart Merge* menu option allows you to select the merge tool to
+use to perform the merge, or even to pick one version or the other
+unconditionally (internal:local, internal:other). After the conflicts
+have been manually resolved, you must use the *mark resolved* context
+menu option to change the file's merge state to *R*.
Mercurial will not allow you to commit a merge if any files have
unresolved *U* merge states.
@@ -235,7 +317,7 @@has a :guilabel:`Clean` button that does the same thing.
Once you have your working directory back at one parent revision, you
-may start the merge process again.
+may restart the merge process.
Commit Message Pane
@@ -269,79 +351,78 @@----------
Many advanced Mercurial users use the MQ extension to manage a patch
-queue. TortoiseHg does not offer much in the way of support for MQ, but
-the commit tool will at least recognize when a patch is applied. When a
-patch is applied, the usual commit command will not work, so the commit
-tool enters *patch refresh* mode. The title bar will say "refreshing
-patch *patchname*" and the patch comment will appear in the commit
-message pane.
+queue. The commit tool will recognize when a patch is applied and enter
+*patch refresh* mode. The title bar will say "refreshing patch
+*patchname*" and the patch comment will appear in the commit message
+pane.
-The commit tool will present the entire contents of the top patch
-including any changes that are in your working directory (un-refreshed
-changes). This is essentially what the qdiff command would show you.
-There is, in fact, no way to get just the working copy diffs beyond
-running :command:`hg diff` on the command line. The reason the dialog
-operates in this mode is that it allow you to use the integrated change
-selection features to move changes into or out of the top patch. You can
-move entire files or single changes in or out of the patch.
+A new 'Patch Contents' tab will appear in the diff pane with the full
+contents of the top patch. The Text Diff and Hunk Selection tabs will
+show the combined diff of the patch and working directory changes so
+that you can move changes into or out of the patch during the qrefresh.
+
+This is essentially what the qdiff command would show you. There is, in
+fact, no way to get just the working copy diffs beyond running
+:command:`hg diff` on the command line or typing a name into the QNew
+entry which toggles the dialog into QNew mode (more below).
The :guilabel:`Commit` button, which has been renamed :guilabel:`QRefresh`
-in this context, it will refresh the top patch with just the changes you
-have selected (including the patch description). This may be a bit
+in this context, will refresh the top patch with the changes you
+have selected, including the patch description. This may be a bit
confusing at first because the changes you leave out of the patch are
-still going to be in the working directory after the refresh, so it will
-look like nothing has changed.
-
-So, in summary, using MQ with TortoiseHg is still almost entirely a
-command line operation, but you can use :command:`hgtk ci` to refresh your
-patches and take advantage of our excellent change selection support.
+still going to be in the working directory after the refresh, so unless
+you look at the patch contents it will not seem as if anything changed.
QNew Mode
---------
-Newly added in 0.8, the commit tool can be used to create a new patch
-for your patch queue. If you have the MQ extension enabled, a text
-entry will be inserted between the branch maintenance button and the
-message history drop-down box. If you enter a filename in this entry
-the commit tool will switch out of *commit* or *qrefresh* mode into
-*qnew* mode. In *qnew* mode, the commit tool shows only working
-directory modifications (the changes that would typically get added to a
-new patch by :command:`hg qnew -f`). The :guilabel:`Commit` button will
-change into a :guilabel:`QNew` button as well, to make the mode switch
-more obvious.
+The commit tool can be used to create a new patch for your patch queue.
+If you have the MQ extension enabled, a text entry will be inserted
+between the branch maintenance button and the message history drop-down
+box. If you enter a filename in this entry the commit tool will switch
+out of *commit* or *qrefresh* mode into *qnew* mode. In *qnew* mode,
+the commit tool shows only working directory modifications (the changes
+that would typically get added to a new patch by :command:`hg qnew -f`).
+The :guilabel:`Commit` button will change into a :guilabel:`QNew` button
+as well, to make the mode switch more obvious.
When the :guilabel:`QNew` button is pressed, the selected change hunks
are written into a new patch (given the filename you specified), and the
-dialog is refreshed. At refresh, the commit tool will obviously switch
-to *qrefresh* mode since there will now be at least one applied patch.
+dialog is refreshed. After this refresh, the commit tool will obviously
+switch to *qrefresh* mode since there will now be at least one applied
+patch.
You may give the new patch a commit message at the initial *qnew* event,
-or you can do it now by using the *qrefresh* feature.
-
-If you left change hunks out of the new patch, they will appear to be in
-the new patch anyway because of the way *qrefresh* mode shows the sum of
-both the top patch and the working directory changes. If you enter a
-new patch name again, and switch the commit tool into *qnew* mode again,
-you will see the changes that you left in the working directory.
-
+or you can do it afterwords while in *qrefresh* mode.
Configurables
-------------
:menuselection:`Commit --> Username`
Sets username associated with your commits (see :doc:`quick`)
-:menuselection:`Commit --> External Tool`
- Allows you to select Qct as the your commit tool [DEPRECATED]
:menuselection:`Commit --> Summary Line Length`
Configures a 'policy' limit for summary lines
:menuselection:`Commit --> Message Line Length`
Configures a 'policy' limit for message lines
+
+And three other features for *advanced* users.
+
+:menuselection:`Commit --> Push After Commit`:
+ When set to True, the commit tool will check the *push after
+ commit* toggle button on startup.
+:menuselection:`Commit --> Auto Commit List`:
+ Comma separated list of files that are automatically included in
+ every commit. Intended for use only as a repository setting.
+:menuselection:`Commit --> Auto Exclude List`:
+ Comma separated list of files that are automatically unchecked
+ when the status, commit, and shelve tools are opened.
+
:menuselection:`TortoiseHg --> Bottom Diffs`
Toggles diff pane from left to below file list
:menuselection:`TortoiseHg --> Max Diff Size`
Configures the diff size limit
-External tool configuration is deprecated and will be removed in 0.9
+External tool configuration has been removed in 0.9
From command line
-----------------
@@ -365,30 +446,4 @@
hg help dates
-
-Changes since 0.7
------------------
-
-* The :guilabel:`Show Diff` button has been removed. Diffs are always shown.
-* The commit tool no longer shows all diffs at startup. Only the first
- currently selected file is shown.
-* Added support for closing a named branch
-* The commit tool is now launchable from the merge dialog
-* The message pane context menu now has options for inserting selected
- filenames, and configuring/applying a layout format.
-* :guilabel:`Ctrl-O` keyboard accelerator for triggering commit has been
- replaced with :guilabel:`Ctrl-Enter` accelerator which is common to
- many TortoiseHg dialogs
-* Support for two-parent state (merging) has been improved, especially
- the file context menus.
-* There is now a limit on the size of files that will be diffed by the commit
- and changelog tools. Files above this size will only show a message
- indicating why the file was not diffed. This limit (default: 1MB) is
- configurable (per-repository if necessary) via the settings dialog
- :menuselection:`TortoiseHg --> Max Diff Size`.
-* You can specify the committer and date via the command line: see
- :command:`hgtk commit -h` for details
-* The :file:`qct.py` extension file is no longer bundled. It must be
- downloaded separately if you wish to use Qct.
-
.. vim: noet ts=4
|
@@ -7,19 +7,6 @@ These features are common to many TortoiseHg tools, so we document them
here just once.
-Geometry Restore
-----------------
-
-Our primary applications like commit, changelog, and datamine will
-restore their geometry and position from the last time they were run.
-This includes maximization status.
-
-If the state to be restored does not fit within your current screen
-dimensions, the application will revert to factory default dimensions.
-
-Dialogs which have fixed geometry or are transitory allow the window
-manager to place them where it wishes.
-
Keyboard Accelerators
---------------------
@@ -32,18 +19,18 @@ close the current window (same as :kbd:`Ctrl-Q` if only one window is open)
:kbd:`Ctrl-D`
- visual diff of currently selected file or changeset
+ visual diff of currently selected file or changeset
:kbd:`Ctrl-Enter`
activation
-:kbd:`F5`
+:kbd:`F5`, :kbd:`Ctrl-R`
refresh
-On `Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_, the apple
-(command) key is used as the modifier instead of :kbd:`Ctrl`. However some
-keyboard accelerators are internal to GTK+ so you must use the control key to
-access cut-paste functionality, for instance.
+On `Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_, the
+apple (command) key is used as the modifier instead of :kbd:`Ctrl`.
+However some keyboard accelerators are internal to GTK+ so you must use
+the control key to access cut-paste functionality, for instance.
Visual Diffs
------------
@@ -104,12 +91,12 @@are treeviews. The changelog graph pane is a treeview. And even the
annotate pane in the datamine tool is a treeview.
-Most of the TortoiseHg treeviews (as of release 0.8) are configured for
-live searches. Ensure that the treeview has focus (by clicking on a
-row), and begin typing a search phrase. A small entry window will appear
-containing the text you have typed, and the treeview will immediately
-jump to the first row that matches the text you have entered thus far.
-As you enter more characters, the search is refined.
+Most of the TortoiseHg treeviews are configured for live searches.
+Ensure that the treeview has focus (by clicking on a row), and begin
+typing a search phrase. A small entry window will appear containing the
+text you have typed, and the treeview will immediately jump to the first
+row that matches the text you have entered thus far. As you enter more
+characters, the search is refined.
* :kbd:`Ctrl-F` opens the search window explicitly
* :kbd:`Ctrl-G` advances the search to the next match
|
@@ -49,9 +49,9 @@ # built documents.
#
# The short X.Y version.
-version = '0.8'
+version = '0.9'
# The full version, including alpha/beta/rc tags.
-release = '0.8.2'
+release = '0.9.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
|
@@ -65,6 +65,9 @@ open an annotation tab for this file at this revision
:guilabel:`file history`
open a changelog window with this file's revision history
+ :guilabel:`view file at revision`
+ open the current file at the specified revision in your favorite
+ text editor.
Annotate Tabs
@@ -98,12 +101,10 @@
The annotation data will automatically follow lines of code back through
copies and renames to find the initial changeset that introduced the
-line. The graph log pane will not follow renames or copies
-automtaically. Instead, when you click on a changeset in the revision
-graph that involved a rename or copy event, a button will appear that
-will allow you to follow the history graph back through the rename.
-Clicking on the button will open a new tab with the older filename
-annotated at the same changeset.
+line. The graph log pane will also attempt to follow renames and
+copies, so some lines in the graph may corrolate to different filenames
+than the original annotated file path. Renames are indicated in the
+graph by color changes within a column.
Configurables
^^^^^^^^^^^^^
|
@@ -33,7 +33,7 @@ :guilabel:`Options`. In the options dialog you can disable overlays
globally, or enable them for local disks only.
-.. figure:: figures/taskbarui.jpg
+.. figure:: figures/taskbarui.png
:alt: Taskbar options dialog
Taskbar Options Dialog
@@ -66,8 +66,8 @@ Context menu for file or folder selection
TortoiseHg provides dialogs for the most regularly used Mercurial
-commands. Less frequently used, and newly added, Mercurial commands
-must need be accessed on the CLI (command line interface) through the
+commands. Less frequently used and newly added Mercurial commands
+must need be accessed on the CLI (command line interface) through
:file:`cmd.exe` windows.
The context menus are configurable via the taskbar menu. Simply click on
@@ -75,14 +75,6 @@:guilabel:`Options`. In the options dialog you can promote individual
menu options to the top menu.
-This is the file rename/move dialog:
-
-.. figure:: figures/rename.jpg
- :alt: Rename file dialog
-
- File rename (or move) dialog
-
-
Nautilus
--------
|
|
|
@@ -14,17 +14,19 @@ `Mercurial <http://mercurial.selenic.com/wiki/>`_,
`kdiff3 <http://kdiff3.sourceforge.net/>`_,
`TortoisePlink <http://www.chiark.greenend.org.uk/%7Esgtatham/putty/>`_
- and one bonus extension: hgfold.
+ and two bonus extensions: hgfold, hgcr-gui.
*How can I get translations for the Explorer context menu?*
- See the `Download <http://bitbucket.org/tortoisehg/stable/wiki/download>`_
- wiki page
+ The available translations were stored by the installer under
+ :file:`C:\\Program Files\\TortoiseHg\\cmenu_i18n`. Select the
+ locale you would like to use, double-click on it, and confirm all
+ requests.
-*How do I do merges and arbitrary version checkouts in 0.8?*
+*How do I do merges and arbitrary version checkouts?*
- Merges and updates intended to be done from within the Changelog
- tool (:guilabel:`View Changelog` menu option) in 0.8.
+ Merges and updates are intended to be done from within the Changelog
+ tool (:guilabel:`Repository Explorer` menu option)
*How do I fix* ``failed to import extension hgext.hgconfig...`` *warnings?*
@@ -39,31 +41,9 @@ this problem. See also
`ssh <http://bitbucket.org/tortoisehg/stable/wiki/ssh>`_.
-*How can I use Qct with TortoiseHg, after version 0.7?*
+*How can I use Qct with TortoiseHg?*
- We recommend that you try the commit tool that comes with TortoiseHg
- before running back to Qct, but here are the instructions should you
- decide to stick with ole' reliable:
-
- 1. Download and install Qct-1.7-standalone-win32.exe from
- http://qct.sourceforge.net
- 2. Add (or merge) the following into your :file:`Mercurial.ini` ::
-
- [extensions]
- qct = C:\path\to\qct.py
-
- [tortoisehg]
- extcommit = qct
-
- [qct]
- path = "C:\Program Files\qct\qct.exe"
-
- Now the :guilabel:`HG Commit` menu option should launch Qct, and
- :command:`hg qct` should work from the command line and hgtk ci
- should also launch Qct.
-
- In 0.9, hgtk ci will no longer launch Qct. We will drop support for
- any external commit tools.
+ In 0.9, we have dropped support for external commit tools. Sorry.
*How can I use hgk (hg view) with TortoiseHg?*
@@ -121,26 +101,12 @@ available in the drop-down list for :guilabel:`Visual Diff Command`.
Select :guilabel:`adiff`, apply, then close.
-*Does TortoiseHg work on Vista?*
-
- TortoiseHg 0.8.n works well on x86 and x64 versions of Vista and Windows 7.
-
-*How can I get the context menus working on 64-bit Vista?*
-
- Upgrade to TortoiseHg 0.8.n
-
*I'm a CLI user, how do I disable the shell extensions (overlay icons and context menus)?*
- If you have TortoiseHg 0.8 or later, you can disable overlays via
- the taskbar options menu. The only way to disable the context menu
- is to rename :file:`ThgShell.dll` in your install directory and then
- restart explorer (this completely disables the shell extension).
-
- If you have an older TortoiseHg release, run this command with
- appropriate permissions:
- :command:`regsvr32 /u "C:\\Program Files\\TortoiseHg\\tortoisehg.dll`
- Run that command without the :command:`/u` argument to re-enable the
- extensions. Both operations take effect after the next reboot.
+ You can disable overlays via the taskbar options menu. The only way
+ to disable the context menu is to rename :file:`ThgShell.dll` in
+ your install directory and then restart explorer (this completely
+ disables the shell extension).
*How is TortoiseHg configured?*
@@ -153,23 +119,18 @@ 2. :file:`%APPDATA%\\Tortoisehg` settings for application state
(window positions, etc)
- These are configurables that are stored the Mercurial configuration
- system. ::
+ These are some of the configurables that are stored the Mercurial
+ configuration system. ::
[tortoisehg]
- extcommit = None
vdiff = vdiff
editor = gvim
tabwidth = 4
longsummary = True
- copyhash = False
graphlimit = 500
authorcolor = True
authorcolor.steve = blue
- See also :doc:`settings`, and
- `issue #50 <http://bitbucket.org/tortoisehg/stable/issue/50/>`_.
-
*Is it possible to change fonts?*
In some cases, yes. The gtools based dialogs (commit, status,
@@ -183,17 +144,12 @@ # font used in file lists in status and commit tools
fontlist = courier 9
- # make the integrated diff window appear at the bottom or side
- # (applies to commit and status dialogs)
- diffbottom = False
-
*How do I switch GTK themes?*
- In 0.7, the theme was selectable at install time. For other
- releases, (and after install on 0.7) you can still do this manually
+ In 0.7, the theme was selectable at install time. For later
+ releases, you can still do this manually.
- * cd :file:`C:\\Program Files\\TortoiseHg\\share\\themes`
- (>=0.8, this is :file:`gtk\\share\\themes`)
+ * cd :file:`C:\\Program Files\\TortoiseHg\\gtk\\share\\themes`
* look at the themes in this directory, remember their names or
keep this folder open.
* :command:`cd ..\\..\\etc\\gtk-2.0`
@@ -204,7 +160,7 @@ * Changes immediately take affect on all newly launched applications
You also should be able to download new themes and copy them into
- the :file:`share\\themes` directory and then enable them in your
+ the :file:`gtk\\share\\themes` directory and then enable them in your
:file:`gtkrc`.
*After uninstalling, it left a bunch of DLL and PYD files behind.*
@@ -223,6 +179,8 @@ problems/questions about the convert extension to the Mercurial
mailing list or #mercurial on irc.freenode.net.
+ Alternatively, you can use the hgsubversion extension.
+
*Where do TortoiseHg extensions look for external Python modules on Windows?*
TortoiseHg includes an entire Python distribution bundled up as
@@ -247,11 +205,11 @@
*How do I fix odd characters in dialog?*
- In 0.8, we no longer distribute multiple themes and switched default
- theme to MS-Windows. As a result, it might causes an issue related
- default font of MS-Windows theme in some environments. In order to
- fix this issue, add following setting to TortoiseHg's :file:`gtkrc`
- file::
+ Since 0.8, we no longer distribute multiple themes and switched
+ default theme to MS-Windows. As a result, it might causes an issue
+ related default font of MS-Windows theme in some environments. In
+ order to fix this issue, add following setting to TortoiseHg's
+ :file:`gtkrc` file::
style "msw-default"
{
|
|
doc/source/figures/annotate.png
size changed from 617x500 to 817x704
mode changed from RGB to RGBA |
||
---|---|---|
|
|
doc/source/figures/clone.png
size changed from 536x308 to 466x152
|
||
---|---|---|
|
doc/source/figures/cmenu-files.jpg
size changed from 323x218 to 334x249
|
||
---|---|---|
|
doc/source/figures/cmenu-nofiles.jpg
size changed from 384x427 to 383x460
|
||
---|---|---|
|
doc/source/figures/commit.png
size changed from 847x552 to 1017x674
mode changed from RGB to RGBA |
||
---|---|---|
|
|
doc/source/figures/init.png
size changed from 366x168 to 419x150
|
||
---|---|---|
|
doc/source/figures/log.png
size changed from 863x621 to 899x730
mode changed from RGB to RGBA |
||
---|---|---|
|
|
|
|
doc/source/figures/overlayicons.png
size changed from 295x137 to 406x66
mode changed from RGB to RGBA |
||
---|---|---|
|
|
|
|
|
doc/source/figures/settings.png
size changed from 454x700 to 446x646
mode changed from RGB to RGBA |
||
---|---|---|
|
doc/source/figures/share.png
size changed from 536x308 to 466x152
|
||
---|---|---|
|
doc/source/figures/shelve.png
size changed from 718x474 to 861x536
mode changed from RGB to RGBA |
---|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
doc/source/figures/synchronize.png
size changed from 671x588 to 671x528
mode changed from RGB to RGBA |
---|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
@@ -22,16 +22,17 @@ If selected TortoiseHg creates an empty :file:`.hgignore` file
in the working directory.
:guilabel:`Make repo compatible with Mercurial 1.0`
- If selected TortoiseHg creates an old type Mercurial repository.
+ If selected TortoiseHg creates an older format Mercurial repository.
Do not check unless you have a strong reason to do, and you know
what you are doing.
Creating a new repository means create a subdirectory called :file:`.hg`.
-In this subdirectory Mercurial keeps all versioning information.
+In this subdirectory Mercurial keeps all its versioning information.
.. warning::
- Never touch the files in :file:`.hg` directory, otherwise a repository
- corruption can happen.
+ It is dangerous to manually edit the files in :file:`.hg` directory,
+ repository corruption can occur. :file:`.hg/hgrc` is perhaps the
+ only exception to this rule.
From command line
-----------------
|
@@ -15,7 +15,7 @@ how to use it.
You can find the most up to date version of this documentation at our
-`web <http://bitbucket.org/tortoisehg/stable/downloads>`_ site.
+`web <http://bitbucket.org/tortoisehg/stable>`_ site.
Reading guide
=============
@@ -34,8 +34,8 @@
:doc:`settings` describes how to configure TortoiseHg.
-:doc:`recovery` describes the recovery operations to do on
-a project.
+:doc:`recovery` describes the recovery operations one can perform on a
+project.
:doc:`faq` has a list of common questions and their answers.
@@ -58,7 +58,7 @@* `Developers <https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop>`_ - Patches, bug reports, development discussions.
* `Issues <https://lists.sourceforge.net/lists/listinfo/tortoisehg-issues>`_ - Notifications from the issue tracker.
-And our `wiki <http://bitbucket.org/tortoisehg/stable/wiki/Home>`_ on BitBucket.
+And our `wiki <http://bitbucket.org/tortoisehg/stable/wiki/Home>`_ on Bitbucket.
Acknowledgement
===============
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
@@ -21,13 +21,12 @@
Walking across the toolbar buttons:
- :guilabel:`Refresh`
- Reload the state of the working directory. It tries to retain
- check and selection state across refresh.
:guilabel:`Shelve`
Shelve selected diffs in checked files.
:guilabel:`Unshelve`
Replace the shelved changes back into the working directory.
+ :guilabel:`Diff`
+ Visual diff checked files
:guilabel:`Revert`
Revert checked files to last revisioned state. If merging, it
allows you to select the revert parent.
@@ -39,6 +38,11 @@ :guilabel:`Remove`
Delete checked unversioned files and/or remove (mark as deleted) any
versioned files.
+ :guilabel:`Forget`
+ Forget checked versioned files
+ :guilabel:`Refresh`
+ Reload the state of the working directory. It tries to retain
+ check and selection state across refresh.
The file list has four columns:
@@ -58,6 +62,17 @@clean, ignored}. These check boxes will be disabled if the commit tool
was given a specific set of files and/or directories.
+Tabs
+----
+
+The shelve tool diff pane has four tabs
+ 1) Text Diff - shows diff of currently selected file
+ 2) Hunk Selection - allows diff hunks of current file to be skipped
+ 3) Shelf Preview - displays all selected changes. This previews the
+ changes that will be removed from the working directory and
+ stored in the shelf.
+ 4) Shelf Contents - the current contents of the shelf.
+
Shelving Changes
----------------
@@ -126,7 +141,6 @@attic allows you to have several named *shelves* which can be saved and
restored independently.
-
Keyboard navigation
-------------------
|
@@ -1,6 +1,9 @@ Start on a project
==================
+.. module:: start
+ :synopsis: Dialog used to create a repository
+
There are many ways to start with Mercurial/TortoiseHg on a project.
1. The project already exists and is unrevisioned. You have to *create*
@@ -18,23 +21,28 @@In the first two cases TortoiseHg can help you with a specific tool, see
the next two sections.
+Create a new repository
+-----------------------
+
+TODO
+
+Clone a repository
+------------------
+
+TODO
+
Convert a project
-----------------
-TortoiseHg has not a specific tool to do the conversion, but after the
-conversion done with Mercurial you can use TortoiseHg as usually in
-this converted project.
-
-How to do the conversion is not in the scope of this manual, please
-refer to http://mercurial.selenic.com/wiki/RepositoryConversion for
-more details.
-
-Normally a conversion is done by enabling the *convert* extension and,
-from the parent directory of the checked-out project type::
+How to perform the conversion is not in the scope of this manual, please
+refer to http://mercurial.selenic.com/wiki/RepositoryConversion for more
+details. Normally a conversion is done by enabling the *convert*
+extension and, from the parent directory of the checked-out project
+typing::
hg convert myproject
After the conversion you have a sibling directory of :file:`myproject`
-called :file:`myproject-hg`. Start to play on it.
+called :file:`myproject-hg`. Start to use it.
.. vim: noet ts=4
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
@@ -1,73 +0,0 @@ - # rename.py - TortoiseHg's dialogs for handling renames
-#
-# Copyright 2009 Steve Borho <steve@borho.org>
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2, incorporated herein by reference.
-
-import sys
-import gtk
-import cStringIO
-
-from mercurial import hg, ui, util, commands
-
-from thgutil.i18n import _
-from thgutil import hglib, paths
-
-from hggtk import dialog
-
-def run(ui, *pats, **opts):
- fname, target = '', ''
- try:
- fname = pats[0]
- target = pats[1]
- except IndexError:
- pass
- fname = util.normpath(fname)
- if target:
- target = hglib.toutf(util.normpath(target))
- else:
- target = hglib.toutf(fname)
- title = 'Rename ' + hglib.toutf(fname)
- dlg = dialog.entry_dialog(None, title, True, target, rename_resp)
- dlg.orig = fname
- return dlg
-
-def rename_resp(dlg, response):
- if response != gtk.RESPONSE_OK:
- dlg.destroy()
- return
- try:
- root = paths.find_root()
- repo = hg.repository(ui.ui(), root)
- except (ImportError, hglib.RepoError):
- dlg.destroy()
- return
-
- new_name = hglib.fromutf(dlg.entry.get_text())
- opts = {}
- opts['force'] = False # Checkbox? Nah.
- opts['after'] = False
- opts['dry_run'] = False
-
- saved = sys.stderr
- errors = cStringIO.StringIO()
- toquit = False
- try:
- sys.stderr = errors
- repo.ui.pushbuffer()
- repo.ui.quiet = True
- try:
- commands.rename(repo.ui, repo, dlg.orig, new_name, **opts)
- toquit = True
- except (util.Abort, hglib.RepoError), inst:
- dlg.error_dialog(None, _('rename error'), str(inst))
- toquit = False
- finally:
- sys.stderr = saved
- textout = errors.getvalue() + repo.ui.popbuffer()
- errors.close()
- if len(textout) > 1:
- dlg.error_dialog(None, _('rename error'), textout)
- elif toquit:
- dlg.destroy()
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This image was not loaded automatically because this changeset is very large.
Click to load this image...
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
renamed from hggtk/logview/__init__.py
|
||
---|---|---|
renamed from hggtk/logview/colormap.py
|
||
---|---|---|
renamed from hggtk/logview/graphcell.py
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
renamed from hggtk/logview/revgraph.py
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
renamed from hggtk/logview/treemodel.py
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
renamed from hggtk/logview/treeview.py
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
Change 1 of 1
Show Entire File
tortoisehg/util/thgstatus.py
Stacked
renamed from hggtk/thgstatus.py
|
||
---|---|---|
@@ -8,7 +8,7 @@ '''update TortoiseHg status cache'''
from mercurial import hg
-from thgutil import paths, shlib
+from tortoisehg.util import paths, shlib
import os
def cachefilepath(repo):
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
|
|
|
|
|
|
|
|
|
Loading...