Mercurial > hg
annotate mercurial/strutil.py @ 20026:84905561ad41
bookmarks: rewrite pushing local bookmarks in "commands.push()" by "compare()"
This patch adds "pushtoremote()", which uses "compare()" to compare
bookmarks between the local and the remote repositories, to replace
pushing local bookmarks in "commands.push()".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 08 Nov 2013 12:45:52 +0900 |
parents | 25e572394f5c |
children | b723f05ec49b |
rev | line source |
---|---|
2953 | 1 # strutil.py - string utilities for Mercurial |
2 # | |
3 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com> | |
4 # | |
8225
46293a0c7e9f
updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents:
8155
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
10263 | 6 # GNU General Public License version 2 or any later version. |
2953 | 7 |
8 def findall(haystack, needle, start=0, end=None): | |
9 if end is None: | |
10 end = len(haystack) | |
11 if end < 0: | |
12 end += len(haystack) | |
13 if start < 0: | |
14 start += len(haystack) | |
15 while start < end: | |
16 c = haystack.find(needle, start, end) | |
17 if c == -1: | |
18 break | |
19 yield c | |
20 start = c + 1 | |
21 | |
22 def rfindall(haystack, needle, start=0, end=None): | |
23 if end is None: | |
24 end = len(haystack) | |
25 if end < 0: | |
26 end += len(haystack) | |
27 if start < 0: | |
28 start += len(haystack) | |
29 while end >= 0: | |
30 c = haystack.rfind(needle, start, end) | |
31 if c == -1: | |
32 break | |
33 yield c | |
34 end = c - 1 |