setup.py
author David Soria Parra <dsp@experimentalworks.net>
Thu, 29 Aug 2013 09:22:13 -0700
branchstable
changeset 1295 8e66ac9c0f0e
parent 238 e4a389eca1b9
permissions -rw-r--r--
shelve: add a shelve extension to save/restore working changes This extension saves shelved changes using a temporary draft commit, and bundles the temporary commit and its draft ancestors, then strips them. This strategy makes it possible to use Mercurial's bundle and merge machinery to resolve conflicts if necessary when unshelving, even when the destination commit or its ancestors have been amended, squashed, or evolved. (Once a change has been unshelved, its associated unbundled commits are either rolled back or stripped.) Storing the shelved change as a bundle also avoids the difficulty that hidden commits would cause, of making it impossible to amend the parent if it is a draft commits (a common scenario). Although this extension shares its name and some functionality with the third party hgshelve extension, it has little else in common. Notably, the hgshelve extension shelves changes as unified diffs, which makes conflict resolution a matter of finding .rej files and conflict markers, and cleaning up the mess by hand. We do not yet allow hunk-level choosing of changes to record. Compared to the hgshelve extension, this is a small regression in usability, but we hope to integrate that at a later point, once the record machinery becomes more reusable and robust. [ original upstream message ]
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
124
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     1
#!/usr/bin/env python
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     2
# $Id$
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     3
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     4
from distutils.core import setup
238
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
     5
import os, time
124
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     6
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     7
# specify version, Mercurial version otherwise
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     8
version = ''
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     9
238
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    10
unknown_version = 'unknown'
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    11
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    12
def getversion():
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    13
    global version, unknown_version
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    14
    if not version and os.path.isdir('.hg'):
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    15
        p = os.popen('hg --quiet identify 2> %s' % os.devnull)
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    16
        ident = p.read()[:-1]
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    17
        if not p.close() and ident:
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    18
            if ident[-1] != '+':
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    19
                version = ident
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    20
            else:
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    21
                version = ident[:-1]
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    22
                version += time.strftime('+%Y%m%d')
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    23
    return version or unknown_version
124
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    24
99dc49c5bcfb Setup standalone module install, version tracking
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    25
setup(name='hgkw',
238
e4a389eca1b9 Move version code into setup.py
Christian Ebert <blacktrash@gmx.net>
parents: 219
diff changeset
    26
      version=getversion(),
219
405a9c1dc7bf setup: add url, reformat
Christian Ebert <blacktrash@gmx.net>
parents: 124
diff changeset
    27
      description='Mercurial keyword extension (standalone)',
405a9c1dc7bf setup: add url, reformat
Christian Ebert <blacktrash@gmx.net>
parents: 124
diff changeset
    28
      author='Christian Ebert',
405a9c1dc7bf setup: add url, reformat
Christian Ebert <blacktrash@gmx.net>
parents: 124
diff changeset
    29
      author_email='blacktrash@gmx.net',
405a9c1dc7bf setup: add url, reformat
Christian Ebert <blacktrash@gmx.net>
parents: 124
diff changeset
    30
      url='http://www.blacktrash.org/hg/hgkeyword/',
405a9c1dc7bf setup: add url, reformat
Christian Ebert <blacktrash@gmx.net>
parents: 124
diff changeset
    31
      license='GNU GPL',
405a9c1dc7bf setup: add url, reformat
Christian Ebert <blacktrash@gmx.net>
parents: 124
diff changeset
    32
      packages=['hgkw'])