Commit Graph

99 Commits

Author SHA1 Message Date
Christian Boos
2cf6c2ce31 setup: pass LD_LIBRARY_PATH to subprocess when determining version. 2009-11-09 17:41:21 +01:00
Christian Boos
b1a3260e08 setup: fix 3fd9b85b797a refactoring, propagate env to runcmd 2009-11-09 17:33:16 +01:00
Gilles Moris
261967d9c9 setup: refactor the version string to a subset of tag+tagdist-hash+date
Here is an array summarizing the mercurial version string:
      [A]       [B]   [C]           [D]
[1] clone      tag   clean  =>  tag
[2] clone      hash  clean  =>  latesttag+latesttagdistance-hash
[3] clone      tag   dirty  =>  tag+date
[4] clone      hash  dirty  =>  latesttag+latesttagdistance-hash+date
[5] archive    tag   clean  =>  tag
[6] archive    hash  clean  =>  latesttag+latesttagdistance-hash

Column [A]: Mercurial built from an hg *archive* or hg *clone* working directory
Column [B]: revision built has a *tag* or else default to the SHA1 *hash*
Column [C]: working tree *clean* or *dirty*
Column [D]: Mercurial version string

Over the previous version:
- row [5] did return just the node hash, now it returns the tag
- prepend the latest tag and the distance to it to rows [2][4][6]
- append also the date to row [3]; previously, it was just the tag
- the version string is with an empty string to avoid possible TypeError
  exceptions during string manipulations
- factorize the function to run hg commands; remove the error message as it is
  no more specific to the function.

This scheme enables to have first part of the version strings that can be
compared, whether it has been built from a tagged or untagged revision.
The second part of the version adds a hash for untagged revisions and today's
date if the working tree has local modifications.
As the version string does not contain spaces or special characters, it should
not break script parsing the 'hg version' command and should be usable for use
in file names.

The new code also ensure that the version string has exactly the same version
string, whether it has been built from an archive or from a clone.
2009-10-18 14:35:36 +02:00
Martin Geisler
524b665b54 help: move help topics from mercurial/help.py to help/*.txt
The help topics are loaded on demand so we wont hit the disk unless we
really have to.
2009-10-04 09:59:13 +02:00
Martin Geisler
a2bda0adf6 merge with crew-stable 2009-07-15 17:44:47 +02:00
Bryan O'Sullivan
b58896628b Merge with crew-stable 2009-07-14 17:21:10 -07:00
Bryan O'Sullivan
e538c31828 setup.py: don't pollute the current directory with temporary files 2009-07-14 17:18:45 -07:00
James Abbatiello
0d7eb15222 Don't copy hidden files/directories during setup.py install
This is useful if a copy of Mercurial is stored in a Subversion repository
so that the .svn directories don't get copied.
2009-07-14 22:42:05 -04:00
Alejandro Santos
77d606ac51 compat: use open() instead of file() everywhere 2009-07-05 11:01:30 +02:00
Dirkjan Ochtman
1d29e68744 change wiki/bts URLs to point to new hostname 2009-06-24 15:32:37 +02:00
Garth Roxburgh-Kidd
ec8fc1a93b fixed 0xc0150004 error building Mercurial under Python 2.6 for Windows 2009-05-28 17:03:35 +02:00
Martin Geisler
dcc3781fa0 setup: execute hg in C locale 2009-05-26 22:02:10 +02:00
Martin Geisler
350a0986a8 setup: handle trust warnings when determining version 2009-05-26 21:13:21 +02:00
Martin Geisler
27457436c6 setup: renamed l, e vars to out, err 2009-05-26 21:07:41 +02:00
Martin Geisler
a18ac5b4e2 setup: another newline if version could not be established. 2009-05-23 13:43:11 +02:00
Martin Geisler
2634f59be8 setup: add missing newline in warning 2009-05-23 00:24:00 +02:00
Jeremy Whitlock
eae140b922 setup: read .hg_archival.txt for version info (issue1670)
Previously, setup.py was enhanced to identify the Mercurial version
from either .hg/ or mercurial/__version__.py. When archives are
created using 'hg archive' or via hgweb, neither of those options are
available. However, there is a .hg_archival.txt file in the root of
the archive that has the information. This patch enhances setup.py to
identify the Mercurial version from the .hg_archival.txt file when
there is no .hg/ or mercurial/__version__.py available.
2009-05-22 21:03:06 +02:00
Christian Ebert
60c4e3cc03 setup.py: subprocess instead of os.popen, sys.stderr.write instead of print
Also check that .hg is a directory.
2009-05-22 14:26:58 +02:00
Martin Geisler
a100fe0b6c setup: require Python 2.4 2009-05-03 17:36:58 +02:00
Martin Geisler
4c6a32f451 setup: cleanup old left-over code 2009-05-03 00:41:09 +02:00
Jeremy Whitlock
94b6b92b9f Fix how setup.py identifies the Mercurial version.
There is a problem with setup.py where it will not identify the Mercurial
version properly when not being ran in within a repository even if
mercurial/__version__.py exists.

To fix, use mercurial.__version__.version when available before defaulting
to "unknown".  (Using mercurial.util.version() is not an option due to a
dependency issue where osutil can be referenced before it is built.)
2009-04-02 18:18:43 -06:00
Matt Mackall
9c307b1dee setup: remove spurious posix import 2009-04-03 12:37:44 -05:00
Matt Mackall
81073ba20c setup.py: fix version detection for tarball
- don't do version detection if there's no .hg directory
- shrink try: clause
- don't write __version__.py if version is unknown
  (we might overwrite the real version)
2009-03-06 09:15:47 -06:00
Martin Geisler
6c5bf586cb setup: run hg with empty HGRCPATH for robustness.
Otherwise a bad hgrc file can make the version detection fail.
2009-02-24 18:09:16 +01:00
Martin Geisler
a4fae9e3f1 setup: use sys.executable to call hg
Executing ".\hg" does not work on Windows, but we can instead ask
Python to execute hg.
2009-02-18 00:44:38 +01:00
Martin Geisler
bf5d4304c2 add --pure flag to setup.py
This flag will make the build_py step install the pure Python modules
in mercurial/pure/ into mercurial/ and furthermore prevent building
the C extensions.
2009-01-24 01:44:43 +01:00
Martin Geisler
7c52fb0c3f setup: get version number using pure Python modules 2009-01-29 19:25:25 +01:00
Martin Geisler
e7e00ca6f5 setup: do not use -c with msgfmt on Solaris (issue1489) 2009-01-28 10:32:15 +01:00
Martin Geisler
6d35a80a4a i18n: check format strings when building xx.mo files 2009-01-25 20:27:37 +01:00
Martin Geisler
8a1d290eb9 i18n: new build_mo command for setup.py
This command will generate .mo files under locale/ for the .po files
found under i18n/.
2009-01-15 00:11:54 +01:00
Martin Geisler
12b2d519d0 i18n: let Makefile generate i18n/hg.pot
The target update-pot extracts strings using pygettext and updates the
i18n/hg.pot file. The translators can then use msgmerge to merge the
new strings in hg.pot with their xx.po file when they want to.

The setup.py file now includes files under both templates/ and i18n/
as data files.
2009-01-15 00:10:54 +01:00
Benoit Boissinot
cf4007a70c recover when no version information is available 2009-01-15 11:41:59 +01:00
Matt Mackall
356502607f refactor version code
- simplify version detection code
- move detection code into setup.py
- move version reading function into util.py
- drop version.py code

This makes hg more closely follow its own recommendation of how to deal with
versioning your builds: use hg id in your build script.
2009-01-10 18:02:38 -06:00
Matt Mackall
d6a350a3b0 setup: warn about missing standard Python components 2008-12-31 17:59:58 -06:00
Augie Fackler
27e82b6a84 Add hgext.zeroconf to the package list so it gets installed by setup.py. 2008-10-12 22:56:43 +02:00
Petr Kodl
09cc67de2c osutil: implementation for Win32
Use information provided by FindFile... Win32 calls
to generate stat information without lstat call per file.
rwx bits in st_mode are ignored as they are not stored in Win32 fs
and Mercurial does not use them
Unicode path / path names over _MAX_PATH are intentionally not supported.
2008-09-14 09:57:33 -04:00
Peter Ruibal
30a2036f9e use Exception(args)-style raising consistently (py3k compatibility) 2008-09-08 13:07:00 +02:00
Dirkjan Ochtman
fcaabba3ec fix double indentation and trailing whitespace 2008-08-31 11:41:52 +02:00
Patrick Mezard
99f53b6386 highlight: split code to improve startup times 2008-08-25 23:04:56 +02:00
Dirkjan Ochtman
b4d9394e54 merge with crew-stable 2008-07-02 09:21:57 +02:00
Paul Moore
d7368594b4 Force email package to be loaded in py2exe
With Python 2.5, the email package is not fully loaded by py2exe, due to
dynamic imports which are not found by modulefinder. This breaks the patchbomb
extension. This patch forces the whole email package to be included so that
the dynamic imports work as expected.
2008-07-01 20:17:11 +01:00
Paul Moore
7113d144ac Add a batch file driver for Windows 2008-04-10 23:07:54 +02:00
Bryan O'Sullivan
8a988e392e manifest: improve parsing performance by 8x via a new C extension 2008-03-26 10:12:10 -07:00
Alexis S. L. Carvalho
317b2a0fec setup.py: hide compiler error messages while searching for inotify 2008-03-23 21:35:57 -03:00
Alexis S. L. Carvalho
552d87eaae setup.py: use a simplified custom version of CCompiler.has_function
The original one doesn't remove its temporary files and even creates
a temporary file in the CWD.
2008-03-14 01:45:17 -03:00
Alexis S. L. Carvalho
d897d40d93 setup.py: skip inotify if there's no inotify_add_watch
Debian Etch doesn't include a sys/inotify.h header, which makes it
impossible to compile _inotify.c, making hg uninstallable.

The cc.has_function() method is implemented by trying to compile a
simple C program.  Since there's no redirection involved all error
messages are sent to the terminal.  This is not particularly pretty
but at least it allows the installation to complete.
2008-03-13 19:50:03 -03:00
Bryan O'Sullivan
23adb6cef4 setup.py: os.uname is not available on Windows 2008-03-12 15:33:43 -07:00
Bryan O'Sullivan
08dc4f9063 Add inotify extension 2008-03-12 15:30:11 -07:00
Matt Mackall
a2dcecb2de filemerge: remove the hgmerge script
This is now better handled using [merge-tools] and [merge-patterns] in hgrc.
2008-02-03 19:29:05 -06:00
Steve Borho
478009f6bd win32: do not install bash hgmerge on Windows 2007-12-07 18:15:24 -06:00