Show More
@@ -880,6 +880,8 b' def serve(ui, repo, **opts):' | |||
|
880 | 880 | fout.write(v) |
|
881 | 881 | fout.flush() |
|
882 | 882 | |
|
883 | lock = None | |
|
884 | ||
|
883 | 885 | while 1: |
|
884 | 886 | cmd = fin.readline()[:-1] |
|
885 | 887 | if cmd == '': |
@@ -887,6 +889,13 b' def serve(ui, repo, **opts):' | |||
|
887 | 889 | if cmd == "heads": |
|
888 | 890 | h = repo.heads() |
|
889 | 891 | respond(" ".join(map(hg.hex, h)) + "\n") |
|
892 | if cmd == "lock": | |
|
893 | lock = repo.lock() | |
|
894 | respond("") | |
|
895 | if cmd == "unlock": | |
|
896 | if lock: lock.release() | |
|
897 | lock = None | |
|
898 | respond("") | |
|
890 | 899 | elif cmd == "branches": |
|
891 | 900 | arg, nodes = getarg() |
|
892 | 901 | nodes = map(hg.bin, nodes.split(" ")) |
@@ -1620,6 +1620,15 b' class httprepository:' | |||
|
1620 | 1620 | |
|
1621 | 1621 | return zread(f) |
|
1622 | 1622 | |
|
1623 | class remotelock: | |
|
1624 | def __init__(self, repo): | |
|
1625 | self.repo = repo | |
|
1626 | def release(self): | |
|
1627 | self.repo.unlock() | |
|
1628 | self.repo = None | |
|
1629 | def __del__(self): | |
|
1630 | if self.repo: | |
|
1631 | self.release() | |
|
1623 | 1632 | |
|
1624 | 1633 | class sshrepository: |
|
1625 | 1634 | def __init__(self, ui, path): |
@@ -1666,6 +1675,13 b' class sshrepository:' | |||
|
1666 | 1675 | l = int(r.readline()) |
|
1667 | 1676 | return r.read(l) |
|
1668 | 1677 | |
|
1678 | def lock(self): | |
|
1679 | self.call("lock") | |
|
1680 | return remotelock(self) | |
|
1681 | ||
|
1682 | def unlock(self): | |
|
1683 | self.call("unlock") | |
|
1684 | ||
|
1669 | 1685 | def heads(self): |
|
1670 | 1686 | d = self.call("heads") |
|
1671 | 1687 | try: |
General Comments 0
You need to be logged in to leave comments.
Login now