##// END OF EJS Templates
context: let workingctx.date(), .user() and description() be overriden
Patrick Mezard -
r6709:f84f507c default
parent child Browse files
Show More
@@ -446,14 +446,26 b' class workingctx(changectx):'
446 """A workingctx object makes access to data related to
446 """A workingctx object makes access to data related to
447 the current working directory convenient.
447 the current working directory convenient.
448 parents - a pair of parent nodeids, or None to use the dirstate.
448 parents - a pair of parent nodeids, or None to use the dirstate.
449 date - any valid date string or (unixtime, offset), or None.
450 user - username string, or None.
449 extra - a dictionary of extra values, or None.
451 extra - a dictionary of extra values, or None.
450 changes - a list of file lists as returned by localrepo.status()
452 changes - a list of file lists as returned by localrepo.status()
451 or None to use the repository status.
453 or None to use the repository status.
452 """
454 """
453 def __init__(self, repo, parents=None, extra=None, changes=None):
455 def __init__(self, repo, parents=None, text="", user=None, date=None,
456 extra=None, changes=None):
454 self._repo = repo
457 self._repo = repo
455 self._rev = None
458 self._rev = None
456 self._node = None
459 self._node = None
460 self._text = text
461 if date is not None:
462 self._date = util.parsedate(date)
463 else:
464 self._date = util.makedate()
465 if user:
466 self._user = user
467 else:
468 self._user = self._repo.ui.username()
457 if parents:
469 if parents:
458 p1, p2 = parents
470 p1, p2 = parents
459 self._parents = [self._repo.changectx(p) for p in (p1, p2)]
471 self._parents = [self._repo.changectx(p) for p in (p1, p2)]
@@ -518,9 +530,9 b' class workingctx(changectx):'
518
530
519 def manifest(self): return self._manifest
531 def manifest(self): return self._manifest
520
532
521 def user(self): return self._repo.ui.username()
533 def user(self): return self._user
522 def date(self): return util.makedate()
534 def date(self): return self._date
523 def description(self): return ""
535 def description(self): return self._text
524 def files(self):
536 def files(self):
525 f = self.modified() + self.added() + self.removed()
537 f = self.modified() + self.added() + self.removed()
526 f.sort()
538 f.sort()
@@ -491,8 +491,10 b' class localrepository(repo.repository):'
491 def changectx(self, changeid=None):
491 def changectx(self, changeid=None):
492 return context.changectx(self, changeid)
492 return context.changectx(self, changeid)
493
493
494 def workingctx(self, parents=None, extra=None, changes=None):
494 def workingctx(self, parents=None, text="", user=None, date=None,
495 return context.workingctx(self, parents, extra, changes)
495 extra=None, changes=None):
496 return context.workingctx(self, parents, text, user, date, extra,
497 changes)
496
498
497 def parents(self, changeid=None):
499 def parents(self, changeid=None):
498 '''
500 '''
@@ -795,11 +797,13 b' class localrepository(repo.repository):'
795 update_dirstate = (self.dirstate.parents()[0] == p1)
797 update_dirstate = (self.dirstate.parents()[0] == p1)
796 changes = [files, [], [], [], []]
798 changes = [files, [], [], [], []]
797
799
798 wctx = self.workingctx((p1, p2), extra, changes)
800 wctx = self.workingctx((p1, p2), text, user, date, extra, changes)
799 commit = wctx.modified() + wctx.added()
801 commit = wctx.modified() + wctx.added()
800 remove = wctx.removed()
802 remove = wctx.removed()
801 extra = wctx.extra().copy()
803 extra = wctx.extra().copy()
802 branchname = extra['branch']
804 branchname = extra['branch']
805 user = wctx.user()
806 text = wctx.description()
803
807
804 c1 = self.changelog.read(p1)
808 c1 = self.changelog.read(p1)
805 c2 = self.changelog.read(p2)
809 c2 = self.changelog.read(p2)
@@ -868,7 +872,6 b' class localrepository(repo.repository):'
868 (new, removed))
872 (new, removed))
869
873
870 # add changeset
874 # add changeset
871 user = user or self.ui.username()
872 if (not empty_ok and not text) or force_editor:
875 if (not empty_ok and not text) or force_editor:
873 edittext = []
876 edittext = []
874 if text:
877 if text:
@@ -901,7 +904,7 b' class localrepository(repo.repository):'
901 text = '\n'.join(lines)
904 text = '\n'.join(lines)
902
905
903 n = self.changelog.add(mn, changed + removed, text, trp, p1, p2,
906 n = self.changelog.add(mn, changed + removed, text, trp, p1, p2,
904 user, date, extra)
907 user, wctx.date(), extra)
905 self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1,
908 self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1,
906 parent2=xp2)
909 parent2=xp2)
907 tr.close()
910 tr.close()
@@ -22,7 +22,5 b' user: foo@bar.com'
22 date: Mon Jan 12 13:46:40 1970 +0000
22 date: Mon Jan 12 13:46:40 1970 +0000
23 summary: commit-1
23 summary: commit-1
24
24
25 transaction abort!
26 rollback completed
27 abort: Please specify a username.
25 abort: Please specify a username.
28 No username found, using user@host instead
26 No username found, using user@host instead
General Comments 0
You need to be logged in to leave comments. Login now