Commits

Anonymous committed 20f5e7f Merge

merge with default

  • Participants
  • Parent commits a37defc, b19f506
  • Branches hgtk

Comments (0)

Files changed (16)

File contrib/wix/help.wxs

-<?xml version="1.0" encoding="utf-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-
-  <?include guids.wxi ?>
-
-  <Fragment>
-    <DirectoryRef Id="INSTALLDIR">
-      <Directory Id="helpdir" Name="help" FileSource="$(var.SourceDir)">
-        <Component Id="helpFolder" Guid="$(var.helpFolder.guid)">
-          <File Name="config.txt" KeyPath="yes" />
-          <File Name="dates.txt" />
-          <File Name="diffs.txt" />
-          <File Name="environment.txt" />
-          <File Name="extensions.txt" />
-          <File Name="glossary.txt" />
-          <File Name="hgweb.txt" />
-          <File Name="merge-tools.txt" />
-          <File Name="multirevs.txt" />
-          <File Name="patterns.txt" />
-          <File Name="revisions.txt" />
-          <File Name="revsets.txt" />
-          <File Name="subrepos.txt" />
-          <File Name="templates.txt" />
-          <File Name="urls.txt" />
-        </Component>
-      </Directory>
-    </DirectoryRef>
-  </Fragment>
-
-</Wix>
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+  <?include guids.wxi ?>
+
+  <Fragment>
+    <DirectoryRef Id="INSTALLDIR">
+      <Directory Id="helpdir" Name="help" FileSource="$(var.SourceDir)">
+        <Component Id="helpFolder" Guid="$(var.helpFolder.guid)">
+          <File Name="config.txt" KeyPath="yes" />
+          <File Name="dates.txt" />
+          <File Name="diffs.txt" />
+          <File Name="environment.txt" />
+          <File Name="extensions.txt" />
+          <File Name="filesets.txt" />
+          <File Name="glossary.txt" />
+          <File Name="hgignore.txt" />
+          <File Name="hgweb.txt" />
+          <File Name="merge-tools.txt" />
+          <File Name="multirevs.txt" />
+          <File Name="patterns.txt" />
+          <File Name="phases.txt" />
+          <File Name="revisions.txt" />
+          <File Name="revsets.txt" />
+          <File Name="subrepos.txt" />
+          <File Name="templates.txt" />
+          <File Name="urls.txt" />
+        </Component>
+      </Directory>
+    </DirectoryRef>
+  </Fragment>
+
+</Wix>

File contrib/wix/i18n.wxs

-<?xml version="1.0" encoding="utf-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-
-  <?include guids.wxi ?>
-
-  <?define hg_po_langs = 
-    da;de;el;fr;it;ja;pt_BR;sv;zh_CN;zh_TW
-  ?>
-
-  <Fragment>
-    <DirectoryRef Id="INSTALLDIR">
-      <Directory Id="i18ndir" Name="i18n" FileSource="$(var.SourceDir)">
-        <Component Id="i18nFolder" Guid="$(var.i18nFolder.guid)">
-          <File Name="hggettext" KeyPath="yes" />
-          <?foreach LANG in $(var.hg_po_langs) ?>
-            <File Id="hg.$(var.LANG).po" 
-                  Name="$(var.LANG).po" 
-            />
-          <?endforeach?>
-        </Component>
-      </Directory>
-    </DirectoryRef>
-  </Fragment>
-
-</Wix>
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+  <?include guids.wxi ?>
+
+  <?define hg_po_langs = 
+    da;de;el;fr;it;ja;pt_BR;ro;ru;sv;zh_CN;zh_TW
+  ?>
+
+  <Fragment>
+    <DirectoryRef Id="INSTALLDIR">
+      <Directory Id="i18ndir" Name="i18n" FileSource="$(var.SourceDir)">
+        <Component Id="i18nFolder" Guid="$(var.i18nFolder.guid)">
+          <File Name="hggettext" KeyPath="yes" />
+          <?foreach LANG in $(var.hg_po_langs) ?>
+            <File Id="hg.$(var.LANG).po" 
+                  Name="$(var.LANG).po" 
+            />
+          <?endforeach?>
+        </Component>
+      </Directory>
+    </DirectoryRef>
+  </Fragment>
+
+</Wix>

File contrib/wix/templates.wxs

-<?xml version="1.0" encoding="utf-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-
-  <?include guids.wxi ?>
-
-  <Fragment>
-    <ComponentGroup Id="templatesFolder">
-
-      <ComponentRef Id="templates.root" />
-
-      <ComponentRef Id="templates.atom" />
-      <ComponentRef Id="templates.coal" />
-      <ComponentRef Id="templates.gitweb" />
-      <ComponentRef Id="templates.monoblue" />
-      <ComponentRef Id="templates.paper" />
-      <ComponentRef Id="templates.raw" />
-      <ComponentRef Id="templates.rss" />
-      <ComponentRef Id="templates.spartan" />
-      <ComponentRef Id="templates.static" />
-
-    </ComponentGroup>
-  </Fragment>
-
-  <Fragment>
-    <DirectoryRef Id="INSTALLDIR">
-
-      <Directory Id="templatesdir" Name="templates" FileSource="$(var.SourceDir)">
-
-        <Component Id="templates.root" Guid="$(var.templates.root.guid)">
-          <File Name="map-cmdline.changelog" KeyPath="yes" />
-          <File Name="map-cmdline.compact" />
-          <File Name="map-cmdline.default" />
-          <File Name="map-cmdline.xml" />
-          <File Name="template-vars.txt" />
-        </Component>
-
-        <Directory Id="templates.atomdir" Name="atom">
-          <Component Id="templates.atom" Guid="$(var.templates.atom.guid)">
-            <File Id="atom.changelog.tmpl"      Name="changelog.tmpl" KeyPath="yes" />
-            <File Id="atom.changelogentry.tmpl" Name="changelogentry.tmpl" />
-            <File Id="atom.error.tmpl"          Name="error.tmpl" />
-            <File Id="atom.filelog.tmpl"        Name="filelog.tmpl" />
-            <File Id="atom.header.tmpl"         Name="header.tmpl" />
-            <File Id="atom.map"                 Name="map" />
-            <File Id="atom.tagentry.tmpl"       Name="tagentry.tmpl" />
-            <File Id="atom.tags.tmpl"           Name="tags.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.coaldir" Name="coal">
-          <Component Id="templates.coal" Guid="$(var.templates.coal.guid)">
-            <File Id="coal.header.tmpl" Name="header.tmpl" KeyPath="yes" />
-            <File Id="coal.map"         Name="map" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.gitwebdir" Name="gitweb">
-          <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)">
-            <File Id="gitweb.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
-            <File Id="gitweb.changelog.tmpl"      Name="changelog.tmpl" />
-            <File Id="gitweb.changelogentry.tmpl" Name="changelogentry.tmpl" />
-            <File Id="gitweb.changeset.tmpl"      Name="changeset.tmpl" />
-            <File Id="gitweb.error.tmpl"          Name="error.tmpl" />
-            <File Id="gitweb.fileannotate.tmpl"   Name="fileannotate.tmpl" />
-            <File Id="gitweb.filediff.tmpl"       Name="filediff.tmpl" />
-            <File Id="gitweb.filelog.tmpl"        Name="filelog.tmpl" />
-            <File Id="gitweb.filerevision.tmpl"   Name="filerevision.tmpl" />
-            <File Id="gitweb.footer.tmpl"         Name="footer.tmpl" />
-            <File Id="gitweb.graph.tmpl"          Name="graph.tmpl" />
-            <File Id="gitweb.header.tmpl"         Name="header.tmpl" />
-            <File Id="gitweb.index.tmpl"          Name="index.tmpl" />
-            <File Id="gitweb.manifest.tmpl"       Name="manifest.tmpl" />
-            <File Id="gitweb.map"                 Name="map" />
-            <File Id="gitweb.notfound.tmpl"       Name="notfound.tmpl" />
-            <File Id="gitweb.search.tmpl"         Name="search.tmpl" />
-            <File Id="gitweb.shortlog.tmpl"       Name="shortlog.tmpl" />
-            <File Id="gitweb.summary.tmpl"        Name="summary.tmpl" />
-            <File Id="gitweb.tags.tmpl"           Name="tags.tmpl" />
-            <File Id="gitweb.help.tmpl"           Name="help.tmpl" />
-            <File Id="gitweb.helptopics.tmpl"     Name="helptopics.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.monobluedir" Name="monoblue">
-          <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)">
-            <File Id="monoblue.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
-            <File Id="monoblue.changelog.tmpl"      Name="changelog.tmpl" />
-            <File Id="monoblue.changelogentry.tmpl" Name="changelogentry.tmpl" />
-            <File Id="monoblue.changeset.tmpl"      Name="changeset.tmpl" />
-            <File Id="monoblue.error.tmpl"          Name="error.tmpl" />
-            <File Id="monoblue.fileannotate.tmpl"   Name="fileannotate.tmpl" />
-            <File Id="monoblue.filediff.tmpl"       Name="filediff.tmpl" />
-            <File Id="monoblue.filelog.tmpl"        Name="filelog.tmpl" />
-            <File Id="monoblue.filerevision.tmpl"   Name="filerevision.tmpl" />
-            <File Id="monoblue.footer.tmpl"         Name="footer.tmpl" />
-            <File Id="monoblue.graph.tmpl"          Name="graph.tmpl" />
-            <File Id="monoblue.header.tmpl"         Name="header.tmpl" />
-            <File Id="monoblue.index.tmpl"          Name="index.tmpl" />
-            <File Id="monoblue.manifest.tmpl"       Name="manifest.tmpl" />
-            <File Id="monoblue.map"                 Name="map" />
-            <File Id="monoblue.notfound.tmpl"       Name="notfound.tmpl" />
-            <File Id="monoblue.search.tmpl"         Name="search.tmpl" />
-            <File Id="monoblue.shortlog.tmpl"       Name="shortlog.tmpl" />
-            <File Id="monoblue.summary.tmpl"        Name="summary.tmpl" />
-            <File Id="monoblue.tags.tmpl"           Name="tags.tmpl" />
-            <File Id="monoblue.help.tmpl"           Name="help.tmpl" />
-            <File Id="monoblue.helptopics.tmpl"     Name="helptopics.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.paperdir" Name="paper">
-          <Component Id="templates.paper" Guid="$(var.templates.paper.guid)">
-            <File Id="paper.branches.tmpl"      Name="branches.tmpl" KeyPath="yes" />
-            <File Id="paper.bookmarks.tmpl"     Name="bookmarks.tmpl" />
-            <File Id="paper.changeset.tmpl"     Name="changeset.tmpl" />
-            <File Id="paper.error.tmpl"         Name="error.tmpl" />
-            <File Id="paper.fileannotate.tmpl"  Name="fileannotate.tmpl" />
-            <File Id="paper.filediff.tmpl"      Name="filediff.tmpl" />
-            <File Id="paper.filelog.tmpl"       Name="filelog.tmpl" />
-            <File Id="paper.filelogentry.tmpl"  Name="filelogentry.tmpl" />
-            <File Id="paper.filerevision.tmpl"  Name="filerevision.tmpl" />
-            <File Id="paper.footer.tmpl"        Name="footer.tmpl" />
-            <File Id="paper.graph.tmpl"         Name="graph.tmpl" />
-            <File Id="paper.header.tmpl"        Name="header.tmpl" />
-            <File Id="paper.index.tmpl"         Name="index.tmpl" />
-            <File Id="paper.manifest.tmpl"      Name="manifest.tmpl" />
-            <File Id="paper.map"                Name="map" />
-            <File Id="paper.notfound.tmpl"      Name="notfound.tmpl" />
-            <File Id="paper.search.tmpl"        Name="search.tmpl" />
-            <File Id="paper.shortlog.tmpl"      Name="shortlog.tmpl" />
-            <File Id="paper.shortlogentry.tmpl" Name="shortlogentry.tmpl" />
-            <File Id="paper.tags.tmpl"          Name="tags.tmpl" />
-            <File Id="paper.help.tmpl"          Name="help.tmpl" />
-            <File Id="paper.helptopics.tmpl"    Name="helptopics.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.rawdir" Name="raw">
-          <Component Id="templates.raw" Guid="$(var.templates.raw.guid)">
-            <File Id="raw.changeset.tmpl"    Name="changeset.tmpl" KeyPath="yes" />
-            <File Id="raw.error.tmpl"        Name="error.tmpl" />
-            <File Id="raw.fileannotate.tmpl" Name="fileannotate.tmpl" />
-            <File Id="raw.filediff.tmpl"     Name="filediff.tmpl" />
-            <File Id="raw.index.tmpl"        Name="index.tmpl" />
-            <File Id="raw.manifest.tmpl"     Name="manifest.tmpl" />
-            <File Id="raw.map"               Name="map" />
-            <File Id="raw.notfound.tmpl"     Name="notfound.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.rssdir" Name="rss">
-          <Component Id="templates.rss" Guid="$(var.templates.rss.guid)">
-            <File Id="rss.changelog.tmpl"      Name="changelog.tmpl" KeyPath="yes" />
-            <File Id="rss.changelogentry.tmpl" Name="changelogentry.tmpl" />
-            <File Id="rss.error.tmpl"          Name="error.tmpl" />
-            <File Id="rss.filelog.tmpl"        Name="filelog.tmpl" />
-            <File Id="rss.filelogentry.tmpl"   Name="filelogentry.tmpl" />
-            <File Id="rss.header.tmpl"         Name="header.tmpl" />
-            <File Id="rss.map"                 Name="map" />
-            <File Id="rss.tagentry.tmpl"       Name="tagentry.tmpl" />
-            <File Id="rss.tags.tmpl"           Name="tags.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.spartandir" Name="spartan">
-          <Component Id="templates.spartan" Guid="$(var.templates.spartan.guid)">
-            <File Id="spartan.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
-            <File Id="spartan.changelog.tmpl"      Name="changelog.tmpl" />
-            <File Id="spartan.changelogentry.tmpl" Name="changelogentry.tmpl" />
-            <File Id="spartan.changeset.tmpl"      Name="changeset.tmpl" />
-            <File Id="spartan.error.tmpl"          Name="error.tmpl" />
-            <File Id="spartan.fileannotate.tmpl"   Name="fileannotate.tmpl" />
-            <File Id="spartan.filediff.tmpl"       Name="filediff.tmpl" />
-            <File Id="spartan.filelog.tmpl"        Name="filelog.tmpl" />
-            <File Id="spartan.filelogentry.tmpl"   Name="filelogentry.tmpl" />
-            <File Id="spartan.filerevision.tmpl"   Name="filerevision.tmpl" />
-            <File Id="spartan.footer.tmpl"         Name="footer.tmpl" />
-            <File Id="spartan.graph.tmpl"          Name="graph.tmpl" />
-            <File Id="spartan.header.tmpl"         Name="header.tmpl" />
-            <File Id="spartan.index.tmpl"          Name="index.tmpl" />
-            <File Id="spartan.manifest.tmpl"       Name="manifest.tmpl" />
-            <File Id="spartan.map"                 Name="map" />
-            <File Id="spartan.notfound.tmpl"       Name="notfound.tmpl" />
-            <File Id="spartan.search.tmpl"         Name="search.tmpl" />
-            <File Id="spartan.shortlog.tmpl"       Name="shortlog.tmpl" />
-            <File Id="spartan.shortlogentry.tmpl"  Name="shortlogentry.tmpl" />
-            <File Id="spartan.tags.tmpl"           Name="tags.tmpl" />
-          </Component>
-        </Directory>
-
-        <Directory Id="templates.staticdir" Name="static">
-          <Component Id="templates.static" Guid="$(var.templates.static.guid)">
-            <File Id="static.background.png"     Name="background.png" KeyPath="yes" />
-            <File Id="static.coal.file.png"      Name="coal-file.png" />
-            <File Id="static.coal.folder.png"    Name="coal-folder.png" />
-            <File Id="static.excanvas.js"        Name="excanvas.js" />
-            <File Id="static.mercurial.js"       Name="mercurial.js" />
-            <File Id="static.hgicon.png"         Name="hgicon.png" />
-            <File Id="static.hglogo.png"         Name="hglogo.png" />
-            <File Id="static.style.coal.css"     Name="style-coal.css" />
-            <File Id="static.style.gitweb.css"   Name="style-gitweb.css" />
-            <File Id="static.style.monoblue.css" Name="style-monoblue.css" />
-            <File Id="static.style.paper.css"    Name="style-paper.css" />
-            <File Id="static.style.css"          Name="style.css" />
-          </Component>
-        </Directory>
-
-      </Directory>
-
-    </DirectoryRef>
-  </Fragment>
-
- </Wix>
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+  <?include guids.wxi ?>
+
+  <Fragment>
+    <ComponentGroup Id="templatesFolder">
+
+      <ComponentRef Id="templates.root" />
+
+      <ComponentRef Id="templates.atom" />
+      <ComponentRef Id="templates.coal" />
+      <ComponentRef Id="templates.gitweb" />
+      <ComponentRef Id="templates.monoblue" />
+      <ComponentRef Id="templates.paper" />
+      <ComponentRef Id="templates.raw" />
+      <ComponentRef Id="templates.rss" />
+      <ComponentRef Id="templates.spartan" />
+      <ComponentRef Id="templates.static" />
+
+    </ComponentGroup>
+  </Fragment>
+
+  <Fragment>
+    <DirectoryRef Id="INSTALLDIR">
+
+      <Directory Id="templatesdir" Name="templates" FileSource="$(var.SourceDir)">
+
+        <Component Id="templates.root" Guid="$(var.templates.root.guid)">
+          <File Name="map-cmdline.changelog" KeyPath="yes" />
+          <File Name="map-cmdline.compact" />
+          <File Name="map-cmdline.default" />
+          <File Name="map-cmdline.bisect" />
+          <File Name="map-cmdline.xml" />
+          <File Name="template-vars.txt" />
+        </Component>
+
+        <Directory Id="templates.atomdir" Name="atom">
+          <Component Id="templates.atom" Guid="$(var.templates.atom.guid)">
+            <File Id="atom.changelog.tmpl"      Name="changelog.tmpl" KeyPath="yes" />
+            <File Id="atom.changelogentry.tmpl" Name="changelogentry.tmpl" />
+            <File Id="atom.error.tmpl"          Name="error.tmpl" />
+            <File Id="atom.filelog.tmpl"        Name="filelog.tmpl" />
+            <File Id="atom.header.tmpl"         Name="header.tmpl" />
+            <File Id="atom.map"                 Name="map" />
+            <File Id="atom.tagentry.tmpl"       Name="tagentry.tmpl" />
+            <File Id="atom.tags.tmpl"           Name="tags.tmpl" />
+            <File Id="atom.bookmarks.tmpl"      Name="bookmarks.tmpl" />
+            <File Id="atom.bookmarkentry.tmpl"  Name="bookmarkentry.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.coaldir" Name="coal">
+          <Component Id="templates.coal" Guid="$(var.templates.coal.guid)">
+            <File Id="coal.header.tmpl" Name="header.tmpl" KeyPath="yes" />
+            <File Id="coal.map"         Name="map" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.gitwebdir" Name="gitweb">
+          <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)">
+            <File Id="gitweb.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
+            <File Id="gitweb.bookmarks.tmpl"      Name="bookmarks.tmpl" />
+            <File Id="gitweb.changelog.tmpl"      Name="changelog.tmpl" />
+            <File Id="gitweb.changelogentry.tmpl" Name="changelogentry.tmpl" />
+            <File Id="gitweb.changeset.tmpl"      Name="changeset.tmpl" />
+            <File Id="gitweb.error.tmpl"          Name="error.tmpl" />
+            <File Id="gitweb.fileannotate.tmpl"   Name="fileannotate.tmpl" />
+            <File Id="gitweb.filediff.tmpl"       Name="filediff.tmpl" />
+            <File Id="gitweb.filelog.tmpl"        Name="filelog.tmpl" />
+            <File Id="gitweb.filerevision.tmpl"   Name="filerevision.tmpl" />
+            <File Id="gitweb.footer.tmpl"         Name="footer.tmpl" />
+            <File Id="gitweb.graph.tmpl"          Name="graph.tmpl" />
+            <File Id="gitweb.header.tmpl"         Name="header.tmpl" />
+            <File Id="gitweb.index.tmpl"          Name="index.tmpl" />
+            <File Id="gitweb.manifest.tmpl"       Name="manifest.tmpl" />
+            <File Id="gitweb.map"                 Name="map" />
+            <File Id="gitweb.notfound.tmpl"       Name="notfound.tmpl" />
+            <File Id="gitweb.search.tmpl"         Name="search.tmpl" />
+            <File Id="gitweb.shortlog.tmpl"       Name="shortlog.tmpl" />
+            <File Id="gitweb.summary.tmpl"        Name="summary.tmpl" />
+            <File Id="gitweb.tags.tmpl"           Name="tags.tmpl" />
+            <File Id="gitweb.help.tmpl"           Name="help.tmpl" />
+            <File Id="gitweb.helptopics.tmpl"     Name="helptopics.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.monobluedir" Name="monoblue">
+          <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)">
+            <File Id="monoblue.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
+            <File Id="monoblue.bookmarks.tmpl"      Name="bookmarks.tmpl" />
+            <File Id="monoblue.changelog.tmpl"      Name="changelog.tmpl" />
+            <File Id="monoblue.changelogentry.tmpl" Name="changelogentry.tmpl" />
+            <File Id="monoblue.changeset.tmpl"      Name="changeset.tmpl" />
+            <File Id="monoblue.error.tmpl"          Name="error.tmpl" />
+            <File Id="monoblue.fileannotate.tmpl"   Name="fileannotate.tmpl" />
+            <File Id="monoblue.filediff.tmpl"       Name="filediff.tmpl" />
+            <File Id="monoblue.filelog.tmpl"        Name="filelog.tmpl" />
+            <File Id="monoblue.filerevision.tmpl"   Name="filerevision.tmpl" />
+            <File Id="monoblue.footer.tmpl"         Name="footer.tmpl" />
+            <File Id="monoblue.graph.tmpl"          Name="graph.tmpl" />
+            <File Id="monoblue.header.tmpl"         Name="header.tmpl" />
+            <File Id="monoblue.index.tmpl"          Name="index.tmpl" />
+            <File Id="monoblue.manifest.tmpl"       Name="manifest.tmpl" />
+            <File Id="monoblue.map"                 Name="map" />
+            <File Id="monoblue.notfound.tmpl"       Name="notfound.tmpl" />
+            <File Id="monoblue.search.tmpl"         Name="search.tmpl" />
+            <File Id="monoblue.shortlog.tmpl"       Name="shortlog.tmpl" />
+            <File Id="monoblue.summary.tmpl"        Name="summary.tmpl" />
+            <File Id="monoblue.tags.tmpl"           Name="tags.tmpl" />
+            <File Id="monoblue.help.tmpl"           Name="help.tmpl" />
+            <File Id="monoblue.helptopics.tmpl"     Name="helptopics.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.paperdir" Name="paper">
+          <Component Id="templates.paper" Guid="$(var.templates.paper.guid)">
+            <File Id="paper.branches.tmpl"      Name="branches.tmpl" KeyPath="yes" />
+            <File Id="paper.bookmarks.tmpl"     Name="bookmarks.tmpl" />
+            <File Id="paper.changeset.tmpl"     Name="changeset.tmpl" />
+            <File Id="paper.diffstat.tmpl"      Name="diffstat.tmpl" />
+            <File Id="paper.error.tmpl"         Name="error.tmpl" />
+            <File Id="paper.fileannotate.tmpl"  Name="fileannotate.tmpl" />
+            <File Id="paper.filediff.tmpl"      Name="filediff.tmpl" />
+            <File Id="paper.filelog.tmpl"       Name="filelog.tmpl" />
+            <File Id="paper.filelogentry.tmpl"  Name="filelogentry.tmpl" />
+            <File Id="paper.filerevision.tmpl"  Name="filerevision.tmpl" />
+            <File Id="paper.footer.tmpl"        Name="footer.tmpl" />
+            <File Id="paper.graph.tmpl"         Name="graph.tmpl" />
+            <File Id="paper.header.tmpl"        Name="header.tmpl" />
+            <File Id="paper.index.tmpl"         Name="index.tmpl" />
+            <File Id="paper.manifest.tmpl"      Name="manifest.tmpl" />
+            <File Id="paper.map"                Name="map" />
+            <File Id="paper.notfound.tmpl"      Name="notfound.tmpl" />
+            <File Id="paper.search.tmpl"        Name="search.tmpl" />
+            <File Id="paper.shortlog.tmpl"      Name="shortlog.tmpl" />
+            <File Id="paper.shortlogentry.tmpl" Name="shortlogentry.tmpl" />
+            <File Id="paper.tags.tmpl"          Name="tags.tmpl" />
+            <File Id="paper.help.tmpl"          Name="help.tmpl" />
+            <File Id="paper.helptopics.tmpl"    Name="helptopics.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.rawdir" Name="raw">
+          <Component Id="templates.raw" Guid="$(var.templates.raw.guid)">
+            <File Id="raw.changeset.tmpl"    Name="changeset.tmpl" KeyPath="yes" />
+            <File Id="raw.error.tmpl"        Name="error.tmpl" />
+            <File Id="raw.fileannotate.tmpl" Name="fileannotate.tmpl" />
+            <File Id="raw.filediff.tmpl"     Name="filediff.tmpl" />
+            <File Id="raw.index.tmpl"        Name="index.tmpl" />
+            <File Id="raw.manifest.tmpl"     Name="manifest.tmpl" />
+            <File Id="raw.map"               Name="map" />
+            <File Id="raw.notfound.tmpl"     Name="notfound.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.rssdir" Name="rss">
+          <Component Id="templates.rss" Guid="$(var.templates.rss.guid)">
+            <File Id="rss.changelog.tmpl"      Name="changelog.tmpl" KeyPath="yes" />
+            <File Id="rss.changelogentry.tmpl" Name="changelogentry.tmpl" />
+            <File Id="rss.error.tmpl"          Name="error.tmpl" />
+            <File Id="rss.filelog.tmpl"        Name="filelog.tmpl" />
+            <File Id="rss.filelogentry.tmpl"   Name="filelogentry.tmpl" />
+            <File Id="rss.header.tmpl"         Name="header.tmpl" />
+            <File Id="rss.map"                 Name="map" />
+            <File Id="rss.tagentry.tmpl"       Name="tagentry.tmpl" />
+            <File Id="rss.tags.tmpl"           Name="tags.tmpl" />
+            <File Id="rss.bookmarks.tmpl"      Name="bookmarks.tmpl" />
+            <File Id="rss.bookmarkentry.tmpl"  Name="bookmarkentry.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.spartandir" Name="spartan">
+          <Component Id="templates.spartan" Guid="$(var.templates.spartan.guid)">
+            <File Id="spartan.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
+            <File Id="spartan.changelog.tmpl"      Name="changelog.tmpl" />
+            <File Id="spartan.changelogentry.tmpl" Name="changelogentry.tmpl" />
+            <File Id="spartan.changeset.tmpl"      Name="changeset.tmpl" />
+            <File Id="spartan.error.tmpl"          Name="error.tmpl" />
+            <File Id="spartan.fileannotate.tmpl"   Name="fileannotate.tmpl" />
+            <File Id="spartan.filediff.tmpl"       Name="filediff.tmpl" />
+            <File Id="spartan.filelog.tmpl"        Name="filelog.tmpl" />
+            <File Id="spartan.filelogentry.tmpl"   Name="filelogentry.tmpl" />
+            <File Id="spartan.filerevision.tmpl"   Name="filerevision.tmpl" />
+            <File Id="spartan.footer.tmpl"         Name="footer.tmpl" />
+            <File Id="spartan.graph.tmpl"          Name="graph.tmpl" />
+            <File Id="spartan.header.tmpl"         Name="header.tmpl" />
+            <File Id="spartan.index.tmpl"          Name="index.tmpl" />
+            <File Id="spartan.manifest.tmpl"       Name="manifest.tmpl" />
+            <File Id="spartan.map"                 Name="map" />
+            <File Id="spartan.notfound.tmpl"       Name="notfound.tmpl" />
+            <File Id="spartan.search.tmpl"         Name="search.tmpl" />
+            <File Id="spartan.shortlog.tmpl"       Name="shortlog.tmpl" />
+            <File Id="spartan.shortlogentry.tmpl"  Name="shortlogentry.tmpl" />
+            <File Id="spartan.tags.tmpl"           Name="tags.tmpl" />
+          </Component>
+        </Directory>
+
+        <Directory Id="templates.staticdir" Name="static">
+          <Component Id="templates.static" Guid="$(var.templates.static.guid)">
+            <File Id="static.background.png"     Name="background.png" KeyPath="yes" />
+            <File Id="static.coal.file.png"      Name="coal-file.png" />
+            <File Id="static.coal.folder.png"    Name="coal-folder.png" />
+            <File Id="static.excanvas.js"        Name="excanvas.js" />
+            <File Id="static.mercurial.js"       Name="mercurial.js" />
+            <File Id="static.hgicon.png"         Name="hgicon.png" />
+            <File Id="static.hglogo.png"         Name="hglogo.png" />
+            <File Id="static.style.coal.css"     Name="style-coal.css" />
+            <File Id="static.style.gitweb.css"   Name="style-gitweb.css" />
+            <File Id="static.style.monoblue.css" Name="style-monoblue.css" />
+            <File Id="static.style.paper.css"    Name="style-paper.css" />
+            <File Id="static.style.css"          Name="style.css" />
+          </Component>
+        </Directory>
+
+      </Directory>
+
+    </DirectoryRef>
+  </Fragment>
+
+ </Wix>

File tortoisehg/hgtk/changeset.py

                         branch = cctx.branch()
                     children.append(revline_data(cctx, branch=branch))
                 return children
-            elif item in ('transplant', 'p4', 'svn'):
+            elif item in ('transplant', 'p4', 'svn', 'source'):
                 ts = widget.get_data(item, usepreset=True)
                 if not ts:
                     return None
                     if branch:
                         return '%s - %s %s' % (revnum, branch, summary)
                     return '%s - %s' % (revnum, summary)
-            if item in ('cset', 'transplant', 'patch', 'p4', 'svn'):
+            if item in ('cset', 'transplant', 'patch', 'p4', 'svn', 'source'):
                 if isinstance(value, basestring):
                     return revid_markup(value)
                 return revline_markup(*value)
             elif item == 'transplant':
                 cset = widget.get_data(item)
                 return genwidget(cset)
+            elif item == 'source':
+                cset = widget.get_data(item)
+                return genwidget(cset)
             raise csinfo.UnknownItem(item)
 
         custom = csinfo.custom(data=data_func, label=label_func,
                                markup=markup_func, widget=widget_func)
         self.csetstyle = csinfo.panelstyle(contents=('cset', 'branch',
                                 'user', 'dateage', 'parents', 'children',
-                                'tags', 'transplant', 'p4', 'svn'), selectable=True)
+                                'tags', 'transplant', 'source',
+                                'p4', 'svn'), selectable=True)
         self.patchstyle = csinfo.panelstyle(contents=('patch', 'branch',
                                  'user', 'dateage', 'parents'),
                                  selectable=True)

File tortoisehg/hgtk/csinfo.py

 
 from tortoisehg.hgtk import gtklib
 
-PANEL_DEFAULT = ('rev', 'summary', 'user', 'dateage', 'branch', 'tags', 'transplant', 'p4', 'svn')
+PANEL_DEFAULT = ('rev', 'summary', 'user', 'dateage', 'branch', 'tags', 'transplant', 'source', 'p4', 'svn')
 
 def create(repo, target=None, style=None, custom=None, **kargs):
     return Factory(repo, custom, style, target, **kargs)()
               'dateage': _('Date:'), 'branch': _('Branch:'),
               'tags': _('Tags:'), 'rawbranch': _('Branch:'),
               'rawtags': _('Tags:'), 'transplant': _('Transplant:'),
+              'source': _('Source:'),
               'p4': _('Perforce:'), 'svn': _('Subversion:'),
               'shortuser': _('User:')}
 
                 except KeyError:
                     pass
                 return None
+            elif item == 'source':
+                extra = ctx.extra()
+                try:
+                    ts = extra['source']
+                    return ts
+                except KeyError:
+                    pass
             elif item == 'p4':
                 extra = ctx.extra()
                 p4cl = extra.get('p4', None)
                 if revnum is not None and revid is not None:
                     return '%s (%s)' % (revnum, revid)
                 return '%s' % revid
-            elif item in ('revid', 'transplant'):
+            elif item in ('revid', 'transplant', 'source'):
                 return gtklib.markup(value, **mono)
             elif item in ('revnum', 'p4', 'svn'):
                 return str(value)

File tortoisehg/hgtk/guess.py

 import cStringIO
 import Queue
 
-from mercurial import hg, ui, mdiff, scmutil, match, error
+from mercurial import hg, ui, mdiff, scmutil, match, error, cmdutil
 from mercurial import similar
 
 from tortoisehg.util.i18n import _
             src, usrc, dest, udest, percent, sensitive = row
             if not sensitive:
                 continue
-            if not os.path.exists(self.repo.wjoin(src)):
-                # Mark missing rename source as removed
-                wctx.remove([src])
-            wctx.copy(src, dest)
+
+            wlock = self.repo.wlock(False)
+            try:
+                opts = {
+                        'after': True,
+                        'force': False,
+                        'include': [],
+                        'exclude': [],
+                        'dry-run': False,
+                        }
+                cmdutil.copy(self.repo.ui, self.repo, [src, dest], opts,
+                        rename=not os.path.exists(self.repo.wjoin(src)))
+            finally:
+                wlock.release()
+
             shlib.shell_notify([self.repo.wjoin(src), self.repo.wjoin(dest)])
             if self.notify_func:
                 self.notify_func()

File tortoisehg/hgtk/hgignore.py

         try:
             f = util.atomictempfile(self.ignorefile, 'wb',
                                     createmode=None)
-            f.writelines(out)
+            f.write(''.join(out))
             f.close()
         except EnvironmentError, e:
             dialog.error_dialog(self, _('Unable to write .hgignore file'),

File tortoisehg/hgtk/hgtk.py

 
 import mercurial.ui as _ui
 from mercurial import hg, util, fancyopts, cmdutil, extensions, error, scmutil
+from mercurial import dispatch as hgdispatch
 
 from tortoisehg.util.i18n import agettext as _
 from tortoisehg.util import hglib, paths, shlib, i18n
             u.setconfig('ui', 'traceback', 'on')
         if '--debugger' in args:
             pdb.set_trace()
+        hgdispatch._parseconfig(u, hgdispatch._earlygetopt(['--config'], args))
         return _runcatch(u, args)
     except SystemExit:
         pass
     ('', 'nofork', None, _('do not fork GUI process')),
     ('', 'fork', None, _('always fork GUI process')),
     ('', 'listfile', '', _('read file list from file')),
+    ('', 'config', [], _('set/override config option (use "section.name=value")')),
 ]
 
 table = {

File tortoisehg/hgtk/history.py

         column('age', _('Age'))
         column('tag', _('Tags'))
         column('svn', _('Subversion'))
+        column('phase', _('Phase'))
 
         model = gtk.ListStore(
             gobject.TYPE_BOOLEAN,
         m.append_sep()
         m.append_submenu(_('Tag'), self.tags_context_menu(), gtk.STOCK_ITALIC)
         m.append_sep()
+        m.append_submenu(_('Phase'), self.phase_context_menu(), gtk.STOCK_ITALIC)
+        m.append_sep()
 
         # disable/enable menus as required
         parents = self.repo.parents()
             m.append_submenu(_('Mercurial Queues'), self.mq_context_menu(),
                              'menupatch.ico')
 
-        # need transplant extension for transplant command
-        if 'transplant' in self.exs:
-            m.append(_('Transp_lant to Local'), self.transplant_rev,
-                     gtk.STOCK_CONVERT)
+        m.append(_('Gra_ft to Local'), self.graft_rev,
+                 gtk.STOCK_CONVERT)
 
         m.append_sep()
         m.append_submenu(_('Bisect'), self.bisect_context_menu(),
         m.append(_('Rename Bookmark...'), self.rename_bookmark, gtk.STOCK_EDIT)
         return m.build()
 
+    def phase_context_menu(self):
+        m = gtklib.MenuBuilder()
+        m.append(_('Public'), self.make_public)
+        m.append(_('Draft'), self.make_draft)
+        m.append(_('Secret'), self.make_secret)
+        return m.build()
+
+    def make_public(self, menuitem):
+        self._change_phase(self.currevid, 0)
+
+    def make_draft(self, menuitem):
+        self._change_phase(self.currevid, 1)
+
+    def make_secret(self, menuitem):
+        self._change_phase(self.currevid, 2)
+
+    def _change_phase(self, rev, phase):
+        """change phase."""
+        if rev == None:
+            revs = list(self.revrange)
+            revs.sort()
+            rev = '%s:%s' % (str(revs[0]), str(revs[1]))
+        cmdline = ['hg', 'phase', '--force', '--rev', str(rev)]
+        if phase == 0:
+            cmdline.append('--public')
+        elif phase == 1:
+            cmdline.append('--draft')
+        elif phase == 2:
+            cmdline.append('--secret')
+
+        def callback(return_code, *args):
+            if return_code == 0:
+                hglib.invalidaterepo(self.repo)
+                self.reload_log()
+                self.changeview.clear()
+                text = _('Finish changing phase')
+            elif return_code is None:
+                text = _('Aborted changing phase')
+            else:
+                text = _('Failed to change phase')
+            self.stbar.set_idle_text(text)
+
+        if not self.execute_command(cmdline, callback,
+                title=_('Changing phase'),
+                status=_('Changing phase...')):
+            gdialog.Prompt(_('Cannot run now'),
+                           _('Please try again after the previous '
+                             'command has completed'), self).run()
+
+
     def mq_context_menu(self):
         m = gtklib.MenuBuilder()
         mqimport = m.append(_('Import Revision to MQ'), self.qimport_rev,
             can_merge = c0.branch() != c1.branch() or c0.ancestor(c1) != c1
         mmerge.set_sensitive(can_merge)
 
-        # need transplant extension for transplant command
-        if 'transplant' in self.exs:
-            m.append(_('Transplant Revision range to local'),
-                     self.transplant_revs, gtk.STOCK_CONVERT)
+        m.append(_('Graft Revision range to local'),
+                 self.graft_revs, gtk.STOCK_CONVERT)
 
         # need rebase extension for rebase command
         if 'rebase' in self.exs:
             self.lastbranchrow = row
             self.filterbar.get_button('branch').set_active(True)
             self.filterbar.get_button('branch').set_sensitive(True)
-            self.reload_log(branch=combo.get_model()[row][0])
+            branch = hglib.fromutf(combo.get_model()[row][0])
+            self.reload_log(branch=branch)
 
             bname = combo.get_active_text() # utf8 encoded
             menu = self.menuitems.get('@' + bname)
         self.reload_log()
         self.changeview.clear()
 
-    def transplant_rev(self, menuitem):
-        """Transplant selection on top of current revision."""
+    def graft_rev(self, menuitem):
+        """Graft selection on top of current revision."""
         rev = str(self.currevid)
-        self.transplant_revs(menuitem, rev)
+        self.graft_revs(menuitem, rev)
 
-    def transplant_revs(self, menuitem, rev=None):
-        """Transplant revision range on top of current revision."""
+    def graft_revs(self, menuitem, rev=None):
+        """Graft revision range on top of current revision."""
         if rev is None:
             revs = list(self.revrange)
             revs.sort()
             rev = '%d:%d' % (revs[0], revs[1])
-        cmdline = ['hg', 'transplant', rev]
+        cmdline = ['hg', 'graft', rev]
         self.execute_command(cmdline, force=True)
         self.repo.invalidate()
         self.reload_log()
         dialog.connect('destroy', refresh)
         self.show_dialog(dialog)
 
-    def current_bookmark(self, menuitem):
-        oldlen = len(self.repo)
-        oldbookmarks = self.repo._bookmarks
-        oldcurrent = self.repo._bookmarkcurrent
-        rev = str(self.currevid)
-        bmark = self.get_rev_tag(rev, include=oldbookmarks)
-
-        def refresh(*args):
-            self.refresh_on_current_marker_change(oldlen, oldbookmarks, oldcurrent,
-                                                  self.repo._bookmarks,
-                                                  self.repo._bookmarkcurrent)
-
-        dialog = bookmark.BookmarkDialog(self.repo, bookmark.TYPE_CURRENT,
-                                         bmark, rev)
-        dialog.connect('destroy', refresh)
-        self.show_dialog(dialog)
-
     def bisect_reset(self, menuitem):
         commands.bisect(ui=self.ui,
                         repo=self.repo,

File tortoisehg/hgtk/logview/treemodel.py

 import gobject
 import re
 
-from mercurial import error
+from mercurial import error, phases
 from tortoisehg.util import hglib
 from tortoisehg.hgtk import gtklib
 
 AGE = 14
 CHANGES = 15
 SVNREV = 16
+PHASE = 17
 
 class TreeModel(gtk.GenericTreeModel):
 
         if index == AGE: return str
         if index == CHANGES: return str
         if index == SVNREV: return str
+        if index == PHASE: return str
 
     def on_get_iter(self, path):
         return path[0]
 
         # non-cached columns
 
-        if column in (HEXID, REVHEX, BRANCH, LOCALTIME, UTC):
+        if column in (HEXID, REVHEX, BRANCH, PHASE, LOCALTIME, UTC):
             if column == HEXID:
                 return str(ctx)
             if column == REVHEX:
                 return hglib.displaytime(ctx.date())
             if column == UTC:
                 return hglib.utctime(ctx.date())
+            if column == PHASE:
+                return hglib.toutf(phases.phasenames[ctx.phase()])
 
         # cached columns
 

File tortoisehg/hgtk/logview/treeview.py

 from tortoisehg.hgtk.logview.graphcell import CellRendererGraph
 from tortoisehg.hgtk.logview.revgraph import *
 
-COLS = 'graph rev id revhex branch changes msg user date utc age tag svn'
+COLS = 'graph rev id revhex branch changes msg user date utc age tag svn phase'
 
 class TreeView(gtk.ScrolledWindow):
 
                                  'Show Subversion column',
                                  False,
                                  gobject.PARAM_READWRITE),
+        'phase-column-visible': (gobject.TYPE_BOOLEAN,
+                                 'Phase',
+                                 'Show phase column',
+                                 False,
+                                 gobject.PARAM_READWRITE),
         'branch-color': (gobject.TYPE_BOOLEAN,
                                  'Branch color',
                                  'Color by branch',
         col.add_attribute(cell, "foreground", treemodel.FGCOLOR)
 
         cell = gtk.CellRendererText()
+        cell.set_property('width-chars', 15)
+        cell.set_property('ellipsize', pango.ELLIPSIZE_END)
+        col = self.tvcolumns['phase'] = gtk.TreeViewColumn(_('Phase'))
+        col.set_visible(False)
+        col.set_resizable(True)
+        col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
+        col.set_fixed_width(cell.get_size(self.treeview)[2])
+        col.pack_start(cell, expand=True)
+        col.add_attribute(cell, 'text', treemodel.PHASE)
+        col.add_attribute(cell, 'foreground', treemodel.FGCOLOR)
+
+        cell = gtk.CellRendererText()
         cell.set_property("width-chars", 10)
         cell.set_property("ellipsize", pango.ELLIPSIZE_END)
         col = self.tvcolumns['changes'] = gtk.TreeViewColumn(_('Changes'))

File tortoisehg/hgtk/visdiff.py

     mod_a, add_a, rem_a = map(set, repo.status(ctx1a.node(), n2, m)[:3])
     if ctx1b:
         mod_b, add_b, rem_b = map(set, repo.status(ctx1b.node(), n2, m)[:3])
-        cpy = copies.copies(repo, ctx1a, ctx1b, ctx1a.ancestor(ctx1b))[0]
+        cpy = copies.pathcopies(ctx1a, ctx1b)
     else:
-        cpy = copies.copies(repo, ctx1a, ctx2, repo[-1])[0]
+        cpy = copies.pathcopies(ctx1a, ctx2)
         mod_b, add_b, rem_b = set(), set(), set()
     MA = mod_a | add_a | mod_b | add_b
     MAR = MA | rem_a | rem_b

File tortoisehg/util/cachethg.py

         for p in excs.split(';'):
             path = p.strip()
             if path:
-                excludepath.append(path)
+                excludepaths.append(path)
     except EnvironmentError:
         pass
 except ImportError:

File tortoisehg/util/hglib.py

     (change e764f24a45ee in mercurial).
     '''
 
-    try:
-        return cmdutil.export(repo, revs, template, fp, switch_parent, opts)
-    except AttributeError:
-        from mercurial import patch
-        return patch.export(repo, revs, template, fp, switch_parent, opts)
+    return cmdutil.export(repo, revs, template, fp, switch_parent, opts)

File tortoisehg/util/hgversion.py

 
 def checkhgversion(v):
     """range check the Mercurial version"""
-    reqver = ['2', '0']
+    reqver = ['2', '2']
     v = v.split('+')[0]
     if not v or v == 'unknown' or len(v) >= 12:
         # can't make any intelligent decisions about unknown or hashes

File tortoisehg/util/prej.py

 # Where possible, it has been tied back into the current Mercurial
 # sources.
 
+import sys
+
 from mercurial.i18n import _
 from mercurial import demandimport
 demandimport.disable()