phosek added a comment.
Herald added a reviewer: MaskRay.

@scott.linder is actually correct, the reason we write the file is precisely as 
he described in https://reviews.llvm.org/D79400#2021255. When you use tools 
like `repo` which branchless checkout, `.git/logs/HEAD` won't exist on initial 
checkout, but we want to detect changes to it later. It's not true that 
`.git/logs/HEAD` isn't used, see for example in clang/lib/Basic/CMakeLists.txt 
on line 24, while the header is being generated by the 
`GenerateVersionFromVCS.cmake` script, whether that script is executed is 
controlled by a dependency on `.git/logs/HEAD`, if `.git/logs/HEAD` doesn't 
change we won't rerun that script. The reason we do this rather than calling 
`.git/logs/HEAD` directly is to avoid running `git rev-parse HEAD` on every 
build invocation. The reason we depend on ``.git/logs/HEAD` and not `.git/HEAD` 
is because the latter may only contain symbolic information and so won't change 
e.g. on rebase whereas the former will, in which case we want to regenerate the 
header. I agree that the Subversion part of `find_first_existing_vc_file` could 
be removed now. We also don't need to check Clang or LLD source tree separately 
from LLVM now that everything is in one repo, but the logic for determining Git 
revision should be still correct.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79400/new/

https://reviews.llvm.org/D79400



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to