{"head":"01a2d783f081fd87c778e88827bab2b0861e696f","size":4,"push_id":44098542,"shas":[["8beade7b21767f039ebf78771bc3a4a9f9f7d440","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","diff: add diff_pathspec_match\n\nThere are two kinds of pathspecs in git: ones which are pure\nprefix matching (e.g., used by \"git diff foo\") and ones\nwhich do file globbing (e.g., used by \"git add\"). While it\nwould be nice one day to unify these, for now they are\nseparate.\n\nThe globbing form already has the match_pathspec function.\nUsually we don't need a specific function for prefix-matching,\nbecause it is done as we traverse the trees. However, when\ndoing some diff operations (like rename following), it is\nuseful to be able to match a whole name against a list of\nprefix pathspecs.  This patch adds diff_pathspec_match to do\nthis.","Jeff King"],["2df89ba87cc577a747928de9a9bb2da8ff227a30","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","diff: convert single_follow to handle multiple pathspecs\n\nThe rename detection code takes as input a set of diff\nfilepairs from doing a straight tree diff. Destination\ncandidates are files which have newly appeared, and source\n(renames), files which have been modified (copies), or all\nfiles (find-copies-harder).\n\nThe single_follow option was introduced to discover the\nrename source of a _single_ destination file. We cannot use\nthe regular diff pathspec restrictions because we need to\nlook at all files as possible sources.\n\nThis patch extends the single_follow concept to allow\nspecifying arbitrary pathspecs, which is the first step to\nallowing --follow on arbitrary pathspecs.","Jeff King"],["ff8ce33ee931f11c2662fbc74e80bc200e9499e4","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","handle arbitrary pathspecs in --follow\n\nTraditionally, --follow handled only one single file, and\nwould follow that file across rename boundaries by replacing\nthe name of the file we are looking for at the rename\nboundary.\n\nThis patch extends the --follow code to handle multiple\narbitrary pathspecs. Instead of replacing the pathspec we\nare looking for, we actually append to it. We must append\nrather than replace, because we may see the rename of a file\n\"subdir/foo\" due to the pathspec \"subdir\". We should\ncontinue showing other content in \"subdir\", in addition to\nthe rename source of \"subdir/foo\".","Jeff King"],["01a2d783f081fd87c778e88827bab2b0861e696f","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","follow --parents wip\n\nThis just turns off the pruning restrictions, and is\nprobably horribly broken.","Jeff King"]],"ref":"refs/heads/jk/follow-multiple-wip"}