##// END OF EJS Templates
obsmarker: crash more helpfully when metadata fields are >255bytes (issue5681)...
Simon Whitaker -
r34408:b6692ba7 default
parent child Browse files
Show More
@@ -0,0 +1,23 b''
1 Create a repo, set the username to something more than 255 bytes, then run hg amend on it.
2
3 $ unset HGUSER
4 $ cat >> $HGRCPATH << EOF
5 > [ui]
6 > username = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <very.long.name@example.com>
7 > [extensions]
8 > amend =
9 > [experimental]
10 > stabilization=createmarkers,exchange
11 > EOF
12 $ hg init tmpa
13 $ cd tmpa
14 $ echo a > a
15 $ hg add
16 adding a
17 $ hg commit -m "Initial commit"
18 $ echo a >> a
19 $ hg amend 2>&1 | egrep -v '^(\*\*| )'
20 transaction abort!
21 rollback completed
22 Traceback (most recent call last):
23 mercurial.error.ProgrammingError: obsstore metadata value cannot be longer than 255 bytes (value "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <very.long.name@example.com>" for key "user" is 285 bytes)
@@ -416,6 +416,14 b' def _fm1encodeonemarker(marker):'
416 for key, value in metadata:
416 for key, value in metadata:
417 lk = len(key)
417 lk = len(key)
418 lv = len(value)
418 lv = len(value)
419 if lk > 255:
420 msg = ('obsstore metadata key cannot be longer than 255 bytes'
421 ' (key "%s" is %u bytes)') % (key, lk)
422 raise error.ProgrammingError(msg)
423 if lv > 255:
424 msg = ('obsstore metadata value cannot be longer than 255 bytes'
425 ' (value "%s" for key "%s" is %u bytes)') % (value, key, lv)
426 raise error.ProgrammingError(msg)
419 data.append(lk)
427 data.append(lk)
420 data.append(lv)
428 data.append(lv)
421 totalsize += lk + lv
429 totalsize += lk + lv
General Comments 0
You need to be logged in to leave comments. Login now