Mercurial > public > mercurial-scm > hg
comparison mercurial/debugcommands.py @ 30956:db30c6bfeb70
debugcommands: move 'debugsuccessorssets' in the new module
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Thu, 02 Feb 2017 10:05:22 +0100 |
parents | 8e38fa360a12 |
children | 14794735faa8 |
comparison
equal
deleted
inserted
replaced
30955:8e38fa360a12 | 30956:db30c6bfeb70 |
---|---|
1893 for k, v in sorted(ctx.substate.items()): | 1893 for k, v in sorted(ctx.substate.items()): |
1894 ui.write(('path %s\n') % k) | 1894 ui.write(('path %s\n') % k) |
1895 ui.write((' source %s\n') % v[0]) | 1895 ui.write((' source %s\n') % v[0]) |
1896 ui.write((' revision %s\n') % v[1]) | 1896 ui.write((' revision %s\n') % v[1]) |
1897 | 1897 |
1898 @command('debugsuccessorssets', | |
1899 [], | |
1900 _('[REV]')) | |
1901 def debugsuccessorssets(ui, repo, *revs): | |
1902 """show set of successors for revision | |
1903 | |
1904 A successors set of changeset A is a consistent group of revisions that | |
1905 succeed A. It contains non-obsolete changesets only. | |
1906 | |
1907 In most cases a changeset A has a single successors set containing a single | |
1908 successor (changeset A replaced by A'). | |
1909 | |
1910 A changeset that is made obsolete with no successors are called "pruned". | |
1911 Such changesets have no successors sets at all. | |
1912 | |
1913 A changeset that has been "split" will have a successors set containing | |
1914 more than one successor. | |
1915 | |
1916 A changeset that has been rewritten in multiple different ways is called | |
1917 "divergent". Such changesets have multiple successor sets (each of which | |
1918 may also be split, i.e. have multiple successors). | |
1919 | |
1920 Results are displayed as follows:: | |
1921 | |
1922 <rev1> | |
1923 <successors-1A> | |
1924 <rev2> | |
1925 <successors-2A> | |
1926 <successors-2B1> <successors-2B2> <successors-2B3> | |
1927 | |
1928 Here rev2 has two possible (i.e. divergent) successors sets. The first | |
1929 holds one element, whereas the second holds three (i.e. the changeset has | |
1930 been split). | |
1931 """ | |
1932 # passed to successorssets caching computation from one call to another | |
1933 cache = {} | |
1934 ctx2str = str | |
1935 node2str = short | |
1936 if ui.debug(): | |
1937 def ctx2str(ctx): | |
1938 return ctx.hex() | |
1939 node2str = hex | |
1940 for rev in scmutil.revrange(repo, revs): | |
1941 ctx = repo[rev] | |
1942 ui.write('%s\n'% ctx2str(ctx)) | |
1943 for succsset in obsolete.successorssets(repo, ctx.node(), cache): | |
1944 if succsset: | |
1945 ui.write(' ') | |
1946 ui.write(node2str(succsset[0])) | |
1947 for node in succsset[1:]: | |
1948 ui.write(' ') | |
1949 ui.write(node2str(node)) | |
1950 ui.write('\n') | |
1951 | |
1898 @command('debugupgraderepo', [ | 1952 @command('debugupgraderepo', [ |
1899 ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')), | 1953 ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')), |
1900 ('', 'run', False, _('performs an upgrade')), | 1954 ('', 'run', False, _('performs an upgrade')), |
1901 ]) | 1955 ]) |
1902 def debugupgraderepo(ui, repo, run=False, optimize=None): | 1956 def debugupgraderepo(ui, repo, run=False, optimize=None): |