Show More
@@ -2443,6 +2443,12 b' def amend(ui, repo, old, extra, pats, op' | |||
|
2443 | 2443 | user = opts.get('user') or old.user() |
|
2444 | 2444 | date = opts.get('date') or old.date() |
|
2445 | 2445 | |
|
2446 | if ui.configbool('rewrite', 'update-timestamp'): | |
|
2447 | if opts.get('date'): | |
|
2448 | pass | |
|
2449 | else: | |
|
2450 | date = dateutil.makedate() | |
|
2451 | ||
|
2446 | 2452 | # Parse the date to allow comparison between date and old.date() |
|
2447 | 2453 | date = dateutil.parsedate(date) |
|
2448 | 2454 | |
@@ -2558,13 +2564,15 b' def amend(ui, repo, old, extra, pats, op' | |||
|
2558 | 2564 | if ((not changes) |
|
2559 | 2565 | and newdesc == old.description() |
|
2560 | 2566 | and user == old.user() |
|
2561 | and date == old.date() | |
|
2562 | 2567 | and pureextra == old.extra()): |
|
2563 | 2568 | # nothing changed. continuing here would create a new node |
|
2564 | 2569 | # anyway because of the amend_source noise. |
|
2565 | 2570 | # |
|
2566 | 2571 | # This not what we expect from amend. |
|
2567 |
|
|
|
2572 | if (date == old.date() or | |
|
2573 | (ui.configbool('rewrite', 'update-timestamp') and | |
|
2574 | not opts.get('date'))): | |
|
2575 | return old.node() | |
|
2568 | 2576 | |
|
2569 | 2577 | commitphase = None |
|
2570 | 2578 | if opts.get('secret'): |
@@ -991,6 +991,9 b" coreconfigitem('storage', 'mmap-threshol" | |||
|
991 | 991 | default='1MB', |
|
992 | 992 | alias=[('experimental', 'mmapindexthreshold')], |
|
993 | 993 | ) |
|
994 | coreconfigitem('rewrite', 'update-timestamp', | |
|
995 | default=False, | |
|
996 | ) | |
|
994 | 997 | coreconfigitem('storage', 'new-repo-backend', |
|
995 | 998 | default='revlogv1', |
|
996 | 999 | ) |
@@ -1806,6 +1806,13 b' have a definite end point.' | |||
|
1806 | 1806 | |
|
1807 | 1807 | Alias definitions for revsets. See :hg:`help revsets` for details. |
|
1808 | 1808 | |
|
1809 | ``rewrite`` | |
|
1810 | ----------- | |
|
1811 | ||
|
1812 | ``update-timestamp`` | |
|
1813 | If true, updates the date and time of the changeset to current. It is only | |
|
1814 | applicable for hg amend in current version. | |
|
1815 | ||
|
1809 | 1816 | ``storage`` |
|
1810 | 1817 | ----------- |
|
1811 | 1818 |
@@ -365,3 +365,128 b' When history-editing-backup config optio' | |||
|
365 | 365 | $ hg amend |
|
366 | 366 | |
|
367 | 367 | #endif |
|
368 | ========================================== | |
|
369 | Test update-timestamp config option| | |
|
370 | ========================================== | |
|
371 | $ cat >> testmocks.py << EOF | |
|
372 | > # mock out util.makedate() to supply testable values | |
|
373 | > import os | |
|
374 | > from mercurial import pycompat, util | |
|
375 | > from mercurial.utils import dateutil | |
|
376 | > | |
|
377 | > def mockmakedate(): | |
|
378 | > filename = os.path.join(os.environ['TESTTMP'], 'testtime') | |
|
379 | > try: | |
|
380 | > with open(filename, 'rb') as timef: | |
|
381 | > time = float(timef.read()) + 1 | |
|
382 | > except IOError: | |
|
383 | > time = 0.0 | |
|
384 | > with open(filename, 'wb') as timef: | |
|
385 | > timef.write(pycompat.bytestr(time)) | |
|
386 | > return (time, 0) | |
|
387 | > | |
|
388 | > dateutil.makedate = mockmakedate | |
|
389 | > EOF | |
|
390 | ||
|
391 | $ cat >> $HGRCPATH << EOF | |
|
392 | > [extensions] | |
|
393 | > amend= | |
|
394 | > testmocks=`pwd`/testmocks.py | |
|
395 | > EOF | |
|
396 | ||
|
397 | $ hg init $TESTTMP/repo5 | |
|
398 | $ cd $TESTTMP/repo5 | |
|
399 | $ echo a>a | |
|
400 | $ hg ci -Am 'commit 1' | |
|
401 | adding a | |
|
402 | #if obsstore-on | |
|
403 | ||
|
404 | When updatetimestamp is False | |
|
405 | ||
|
406 | $ hg amend --date '1997-1-1 0:1' | |
|
407 | $ hg log --limit 1 | |
|
408 | changeset: 1:036a159be19d | |
|
409 | tag: tip | |
|
410 | parent: -1:000000000000 | |
|
411 | user: test | |
|
412 | date: Wed Jan 01 00:01:00 1997 +0000 | |
|
413 | summary: commit 1 | |
|
414 | ||
|
415 | When update-timestamp is True and no other change than the date | |
|
416 | ||
|
417 | $ hg amend --config rewrite.update-timestamp=True | |
|
418 | nothing changed | |
|
419 | [1] | |
|
420 | $ hg log --limit 1 | |
|
421 | changeset: 1:036a159be19d | |
|
422 | tag: tip | |
|
423 | parent: -1:000000000000 | |
|
424 | user: test | |
|
425 | date: Wed Jan 01 00:01:00 1997 +0000 | |
|
426 | summary: commit 1 | |
|
427 | ||
|
428 | When update-timestamp is True and there is other change than the date | |
|
429 | $ hg amend --user foobar --config rewrite.update-timestamp=True | |
|
430 | $ hg log --limit 1 | |
|
431 | changeset: 2:3ba48b892280 | |
|
432 | tag: tip | |
|
433 | parent: -1:000000000000 | |
|
434 | user: foobar | |
|
435 | date: Thu Jan 01 00:00:02 1970 +0000 | |
|
436 | summary: commit 1 | |
|
437 | ||
|
438 | ||
|
439 | When date option is applicable and update-timestamp is True | |
|
440 | $ hg amend --date '1998-1-1 0:1' --config rewrite.update-timestamp=True | |
|
441 | $ hg log --limit 1 | |
|
442 | changeset: 3:626aee031885 | |
|
443 | tag: tip | |
|
444 | parent: -1:000000000000 | |
|
445 | user: foobar | |
|
446 | date: Thu Jan 01 00:01:00 1998 +0000 | |
|
447 | summary: commit 1 | |
|
448 | ||
|
449 | #else | |
|
450 | ||
|
451 | When updatetimestamp is False | |
|
452 | ||
|
453 | $ hg amend --date '1997-1-1 0:1' | |
|
454 | $ hg log --limit 1 | |
|
455 | changeset: 0:036a159be19d | |
|
456 | tag: tip | |
|
457 | user: test | |
|
458 | date: Wed Jan 01 00:01:00 1997 +0000 | |
|
459 | summary: commit 1 | |
|
460 | ||
|
461 | When update-timestamp is True and no other change than the date | |
|
462 | ||
|
463 | $ hg amend --config rewrite.update-timestamp=True | |
|
464 | nothing changed | |
|
465 | [1] | |
|
466 | $ hg log --limit 1 | |
|
467 | changeset: 0:036a159be19d | |
|
468 | tag: tip | |
|
469 | user: test | |
|
470 | date: Wed Jan 01 00:01:00 1997 +0000 | |
|
471 | summary: commit 1 | |
|
472 | ||
|
473 | When update-timestamp is True and there is other change than the date | |
|
474 | $ hg amend --user foobar --config rewrite.update-timestamp=True | |
|
475 | $ hg log --limit 1 | |
|
476 | changeset: 0:3ba48b892280 | |
|
477 | tag: tip | |
|
478 | user: foobar | |
|
479 | date: Thu Jan 01 00:00:02 1970 +0000 | |
|
480 | summary: commit 1 | |
|
481 | ||
|
482 | ||
|
483 | When date option is applicable and update-timestamp is True | |
|
484 | $ hg amend --date '1998-1-1 0:1' --config rewrite.update-timestamp=True | |
|
485 | $ hg log --limit 1 | |
|
486 | changeset: 0:626aee031885 | |
|
487 | tag: tip | |
|
488 | user: foobar | |
|
489 | date: Thu Jan 01 00:01:00 1998 +0000 | |
|
490 | summary: commit 1 | |
|
491 | ||
|
492 | #endif |
General Comments 0
You need to be logged in to leave comments.
Login now