fnp
/
redakcja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Style diffa.
[redakcja.git]
/
lib
/
wlrepo
/
mercurial_backend
/
document.py
diff --git
a/lib/wlrepo/mercurial_backend/document.py
b/lib/wlrepo/mercurial_backend/document.py
index
35779d8
..
77b8ead
100755
(executable)
--- a/
lib/wlrepo/mercurial_backend/document.py
+++ b/
lib/wlrepo/mercurial_backend/document.py
@@
-103,7
+103,7
@@
class MercurialDocument(wlrepo.Document):
self.invoke_and_commit(take_action, \
lambda d: ("$AUTO$ File checkout.", user) )
self.invoke_and_commit(take_action, \
lambda d: ("$AUTO$ File checkout.", user) )
- return self._library.document_for_rev(fullid)
+ return self._library.document_for_rev
ision
(fullid)
def up_to_date(self):
if self.ismain():
def up_to_date(self):
if self.ismain():
@@
-190,18
+190,22
@@
class MercurialDocument(wlrepo.Document):
# | *
# | |
# We want to prevent stuff like this.
# | *
# | |
# We want to prevent stuff like this.
- if self.parent().parentof(shared):
+ if self.parent().parentof(shared)
and shared.parentof(self)
:
return False, "Preventing zig-zag"
return False, "Preventing zig-zag"
- return True, "OK"
-
+ return True, "All ok"
def share(self, message):
lock = self.library.lock()
try:
def share(self, message):
lock = self.library.lock()
try:
- result, info = self.would_share()
+ # check if the document is in "updated" state
+ if not self.up_to_date():
+ raise wlrepo.OutdatedException("You must update your document before share.")
- if not result:
+ # now check if there is anything to do
+ need_work, info = self.would_share()
+
+ if not need_work:
return self.shared()
# The good situation
return self.shared()
# The good situation
@@
-215,15
+219,14
@@
class MercurialDocument(wlrepo.Document):
# | |
shared = self.shared()
# | |
shared = self.shared()
- if shared.ancestorof(self):
+ try:
success = shared._revision.merge_with(self._revision, user=self.owner, message=message)
success = shared._revision.merge_with(self._revision, user=self.owner, message=message)
-
if not success:
raise wlrepo.LibraryException("Merge failed.")
return shared.latest()
if not success:
raise wlrepo.LibraryException("Merge failed.")
return shared.latest()
-
-
raise wlrepo.LibraryException("Unrecognized share-state."
)
+ except Abort, e:
+
raise wlrepo.LibraryException( repr(e)
)
finally:
lock.release()
finally:
lock.release()