##// END OF EJS Templates
merge: when rename was made on both sides, use ancestor as merge base...
merge: when rename was made on both sides, use ancestor as merge base When both sides of a merge have renamed a file to the same place, we would treat that as a "both created" action in merge.py. That means that we'd use an empty diffbase. It seems better to use the copy source as diffbase. That can be done by simply dropping code that prevented us from doing that. I think I did it that way in 57203e0210f8 (copies: calculate mergecopies() based on pathcopies(), 2019-04-11) only to preserve the existing behavior. I also suspect it was just an accident that it behaved that way before that commit. Note that until fa9ad1da2e77 (merge: start using the per-side copy dicts, 2020-01-23), it was non-deterministic (depending on iteration order of the `allsources` set in `copies._fullcopytracing()`) which source was used in the affected test case in test-rename-merge1.t. We could easily have fixed that by sorting them, but now we can instead detect the case (the TODO added in the previous patch). Differential Revision: https://phab.mercurial-scm.org/D7974

File last commit:

r35977:9724f549 default
r44714:b4057d00 default
Show More
util.h
35 lines | 855 B | text/x-c | CLexer
/*
* Utility functions
*
* Copyright (c) 2011 Yuya Nishihara <yuya@tcha.org>
*
* This software may be used and distributed according to the terms of the
* GNU General Public License version 2 or any later version.
*/
#ifndef UTIL_H_
#define UTIL_H_
#ifdef __GNUC__
#define PRINTF_FORMAT_ __attribute__((format(printf, 1, 2)))
#define UNUSED_ __attribute__((unused))
#else
#define PRINTF_FORMAT_
#define UNUSED_
#endif
void abortmsg(const char *fmt, ...) PRINTF_FORMAT_;
void abortmsgerrno(const char *fmt, ...) PRINTF_FORMAT_;
void enablecolor(void);
void enabledebugmsg(void);
void debugmsg(const char *fmt, ...) PRINTF_FORMAT_;
void fchdirx(int dirfd);
void fsetcloexec(int fd);
void *mallocx(size_t size);
void *reallocx(void *ptr, size_t size);
int runshellcmd(const char *cmd, const char *envp[], const char *cwd);
#endif /* UTIL_H_ */