borg/.gitattributes
Thomas Waldmann 8181c08a9e
windows: do not build the binaries from a "dirty" checkout, see #10199
The 2.0.0b23 Windows binaries call themselves
"2.0.0b24.dev0+g116435fa4.d20260823": actions/checkout runs Git for
Windows, whose system config sets core.autocrlf=true, so the worktree
gets CRLF line endings. The msys2 git the build steps use does not set
it, thus sees every text file as modified, and setuptools-scm builds a
guessed-next .devN version instead of the version of the tag.

- .gitattributes: store and check out text files with LF everywhere.
  logo.pdf has no NUL byte within the first 8000 bytes, so git would
  auto-detect it as text - it needs an explicit -text.
- ci.yml: also switch core.autocrlf off before checkout, so that
  building an older tag (which has no such .gitattributes) works, too.
- release.yml: refuse to publish a sdist that is not the tag version.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 09:56:58 +02:00

14 lines
576 B
Text

borg/_version.py export-subst
# Store text files with LF and check them out with LF everywhere, so that a
# Windows checkout is not seen as modified by a git with a different
# core.autocrlf setting - that made setuptools-scm build the Windows binaries
# from a "dirty" checkout and give them a wrong version, see #10199.
* text=auto eol=lf
# git auto-detects binary content by looking for a NUL byte in the first 8000
# bytes; logo.pdf is small enough to have none, so tell git explicitly.
*.pdf -text
*.py diff=python
docs/usage/*.rst.inc merge=ours
docs/man/* merge=ours