mirror of
https://github.com/facebook/sapling.git
synced 2025-01-01 09:37:56 +03:00
histedit: use 'util.ellipsis' to trim description of each changesets
Before this patch, trimming description of each changesets in histedit may split at intermediate multi-byte sequence. This patch uses 'util.ellipsis' to trim description of each changesets instead of directly slicing byte sequence. Even though 'util.ellipsis' adds '...' as ellipsis when specified string is trimmed (= this changes result of trimming), this patch uses it, because: - it can be used without any additional 'import', and - ellipsis seems to be better than just trimming, for usability
This commit is contained in:
parent
5206a6fd25
commit
9aa5fab4ec
@ -760,7 +760,8 @@ def makedesc(c):
|
||||
if c.description():
|
||||
summary = c.description().splitlines()[0]
|
||||
line = 'pick %s %d %s' % (c, c.rev(), summary)
|
||||
return line[:80] # trim to 80 chars so it's not stupidly wide in my editor
|
||||
# trim to 80 columns so it's not stupidly wide in my editor
|
||||
return util.ellipsis(line, 80)
|
||||
|
||||
def verifyrules(rules, repo, ctxs):
|
||||
"""Verify that there exists exactly one edit rule per given changeset.
|
||||
|
@ -227,3 +227,35 @@ short hash. This tests issue3893.
|
||||
$ hg histedit -r 'heads(all())'
|
||||
abort: The specified revisions must have exactly one common root
|
||||
[255]
|
||||
|
||||
Test that trimming description using multi-byte characters
|
||||
--------------------------------------------------------------------
|
||||
|
||||
$ python <<EOF
|
||||
> fp = open('logfile', 'w')
|
||||
> fp.write('12345678901234567890123456789012345678901234567890' +
|
||||
> '12345') # there are 5 more columns for 80 columns
|
||||
>
|
||||
> # 2 x 4 = 8 columns, but 3 x 4 = 12 bytes
|
||||
> fp.write(u'\u3042\u3044\u3046\u3048'.encode('utf-8'))
|
||||
>
|
||||
> fp.close()
|
||||
> EOF
|
||||
$ echo xx >> x
|
||||
$ hg --encoding utf-8 commit --logfile logfile
|
||||
|
||||
$ HGEDITOR=cat hg --encoding utf-8 histedit tip
|
||||
pick 3d3ea1f3a10b 5 1234567890123456789012345678901234567890123456789012345\xe3\x81\x82... (esc)
|
||||
|
||||
# Edit history between 3d3ea1f3a10b and 3d3ea1f3a10b
|
||||
#
|
||||
# Commits are listed from least to most recent
|
||||
#
|
||||
# Commands:
|
||||
# p, pick = use commit
|
||||
# e, edit = use commit, but stop for amending
|
||||
# f, fold = use commit, but combine it with the one above
|
||||
# d, drop = remove commit from history
|
||||
# m, mess = edit message without changing commit content
|
||||
#
|
||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
|
Loading…
Reference in New Issue
Block a user