##// END OF EJS Templates
ui: path option to declare which revisions to push by default...
Gregory Szorc -
r29413:31d3ab79 default
parent child Browse files
Show More
@@ -5942,6 +5942,15 b' def push(ui, repo, dest=None, **opts):'
5942 if not revs:
5942 if not revs:
5943 raise error.Abort(_("specified revisions evaluate to an empty set"),
5943 raise error.Abort(_("specified revisions evaluate to an empty set"),
5944 hint=_("use different revision arguments"))
5944 hint=_("use different revision arguments"))
5945 elif path.pushrev:
5946 # It doesn't make any sense to specify ancestor revisions. So limit
5947 # to DAG heads to make discovery simpler.
5948 expr = revset.formatspec('heads(%r)', path.pushrev)
5949 revs = scmutil.revrange(repo, [expr])
5950 revs = [repo[rev].node() for rev in revs]
5951 if not revs:
5952 raise error.Abort(_('default push revset for path evaluates to an '
5953 'empty set'))
5945
5954
5946 repo._subtoppath = dest
5955 repo._subtoppath = dest
5947 try:
5956 try:
@@ -1282,6 +1282,18 b' The following sub-options can be defined'
1282 The URL to use for push operations. If not defined, the location
1282 The URL to use for push operations. If not defined, the location
1283 defined by the path's main entry is used.
1283 defined by the path's main entry is used.
1284
1284
1285 ``pushrev``
1286 A revset defining which revisions to push by default.
1287
1288 When :hg:`push` is executed without a ``-r`` argument, the revset
1289 defined by this sub-option is evaluated to determine what to push.
1290
1291 For example, a value of ``.`` will push the working directory's
1292 revision by default.
1293
1294 Revsets specifying bookmarks will not result in the bookmark being
1295 pushed.
1296
1285 The following special named paths exist:
1297 The following special named paths exist:
1286
1298
1287 ``default``
1299 ``default``
@@ -1281,6 +1281,10 b' def pushurlpathoption(ui, path, value):'
1281
1281
1282 return str(u)
1282 return str(u)
1283
1283
1284 @pathsuboption('pushrev', 'pushrev')
1285 def pushrevpathoption(ui, path, value):
1286 return value
1287
1284 class path(object):
1288 class path(object):
1285 """Represents an individual path and its configuration."""
1289 """Represents an individual path and its configuration."""
1286
1290
@@ -105,4 +105,43 b' Windows needs a leading slash to make a '
105 adding file changes
105 adding file changes
106 added 1 changesets with 1 changes to 1 files
106 added 1 changesets with 1 changes to 1 files
107
107
108 :pushrev is used when no -r is passed
109
110 $ cat >> .hg/hgrc << EOF
111 > default:pushrev = .
112 > EOF
113 $ hg -q up -r 0
114 $ echo head1 > foo
115 $ hg -q commit -A -m head1
116 $ hg -q up -r 0
117 $ echo head2 > foo
118 $ hg -q commit -A -m head2
119 $ hg push -f
120 pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
121 searching for changes
122 adding changesets
123 adding manifests
124 adding file changes
125 added 1 changesets with 1 changes to 1 files (+1 heads)
126
127 $ hg --config 'paths.default:pushrev=draft()' push -f
128 pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
129 searching for changes
130 adding changesets
131 adding manifests
132 adding file changes
133 added 1 changesets with 1 changes to 1 files (+1 heads)
134
135 Invalid :pushrev raises appropriately
136
137 $ hg --config 'paths.default:pushrev=notdefined()' push
138 pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
139 hg: parse error: unknown identifier: notdefined
140 [255]
141
142 $ hg --config 'paths.default:pushrev=(' push
143 pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
144 hg: parse error at 1: not a prefix: end
145 [255]
146
108 $ cd ..
147 $ cd ..
@@ -1515,6 +1515,18 b' Test section lookup'
1515 The URL to use for push operations. If not defined, the location
1515 The URL to use for push operations. If not defined, the location
1516 defined by the path's main entry is used.
1516 defined by the path's main entry is used.
1517
1517
1518 "pushrev"
1519 A revset defining which revisions to push by default.
1520
1521 When 'hg push' is executed without a "-r" argument, the revset defined
1522 by this sub-option is evaluated to determine what to push.
1523
1524 For example, a value of "." will push the working directory's revision
1525 by default.
1526
1527 Revsets specifying bookmarks will not result in the bookmark being
1528 pushed.
1529
1518 The following special named paths exist:
1530 The following special named paths exist:
1519
1531
1520 "default"
1532 "default"
General Comments 0
You need to be logged in to leave comments. Login now