Mercurial > hg
view hgext/inotify/common.py @ 19954:427ce5633c1c stable
largefiles: don't prompt for normal/largefile changes when doing plain updates
We used to get like:
$ hg up -r 2
foo has been turned into a normal file
keep as (l)argefile or use (n)ormal file? l
getting changed largefiles
0 largefiles updated, 0 removed
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ cat foo
cat: foo: No such file or directory
[1]
- which both asked the wrong question and did the wrong thing.
Instead, skip this conflict resolution when the local conflicting file has been
scheduled for removal and there thus is no conflict.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 25 Oct 2013 02:33:59 +0800 |
parents | 25e572394f5c |
children |
line wrap: on
line source
# server.py - inotify common protocol code # # Copyright 2006, 2007, 2008 Bryan O'Sullivan <bos@serpentine.com> # Copyright 2007, 2008 Brendan Cully <brendan@kublai.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. import cStringIO, socket, struct """ Protocol between inotify clients and server: Client sending query: 1) send protocol version number 2) send query type (string, 4 letters long) 3) send query parameters: - For STAT, N+1 \0-separated strings: 1) N different names that need checking 2) 1 string containing all the status types to match - No parameter needed for DBUG Server sending query answer: 1) send protocol version number 2) send query type 3) send struct.pack'ed headers describing the length of the content: e.g. for STAT, receive 9 integers describing the length of the 9 \0-separated string lists to be read: * one file list for each lmar!?ic status type * one list containing the directories visited during lookup """ version = 3 resphdrfmts = { 'STAT': '>lllllllll', # status requests 'DBUG': '>l' # debugging queries } resphdrsizes = dict((k, struct.calcsize(v)) for k, v in resphdrfmts.iteritems()) def recvcs(sock): cs = cStringIO.StringIO() s = True try: while s: s = sock.recv(65536) cs.write(s) finally: sock.shutdown(socket.SHUT_RD) cs.seek(0) return cs