##// END OF EJS Templates
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs...
lfs: add the 'lfs' requirement in the changegroup transaction introducing lfs A hook like this is how largefiles manages to do the same. Largefiles uses a changegroup hook, but this uses pretxnchangegroup because that actually causes the transaction to rollback in the unlikely event that writing the requirements out fails. Sadly, the requires file itself isn't rolled back if a subsequent hook fails, but that seems trivial. Now that commit, changegroup and convert are covered, I don't think there's any way to get an lfs repo without the requirement. The grep exit code is blotted out of some test-lfs-serve.t tests now showing the requirement, because run-tests.py doesn't support conditionalizing the exit code.

File last commit:

r33595:283a7da6 stable
r35520:6bb940de default
Show More
test-mac-packages.t
71 lines | 3.1 KiB | text/troff | Tads3Lexer
/ tests / test-mac-packages.t
Kevin Bullock
osx: create a modern package including manpages...
r29027 #require test-repo slow osx osxpackaging
timeless
tests: silence test-repo obsolete warning...
r29219
$ . "$TESTDIR/helpers-testrepo.sh"
Yuya Nishihara
tests: alias syshg and syshgenv so they can be switched conditionally
r33199 $ testrepohgenv
timeless
tests: silence test-repo obsolete warning...
r29219
Augie Fackler
osx: use more paranoid quoting in test
r31610 $ OUTPUTDIR="`pwd`"
Augie Fackler
tests: add test for Mac OS X package construction
r29025 $ export OUTPUTDIR
$ KEEPMPKG=yes
$ export KEEPMPKG
$ cd "$TESTDIR"/..
Augie Fackler
osx: new script for generating OS X package versions...
r33595 $ contrib/genosxversion.py --selftest ignoredarg
Augie Fackler
osx: use more paranoid quoting in test
r31610 $ make osx > "$OUTPUTDIR/build.log" 2>&1
$ cd "$OUTPUTDIR"
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ ls -d *.pkg
Mercurial-*-macosx10.*.pkg (glob)
$ xar -xf Mercurial*.pkg
Augie Fackler
tests: add test for Mac OS X package construction
r29025
Gather list of all installed files:
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ lsbom mercurial.pkg/Bom > boms.txt
Augie Fackler
tests: add test for Mac OS X package construction
r29025
Augie Fackler
osx: override default exclude filter for pkgbuild...
r32603 We've had problems with the filter logic in the past. Make sure no
.DS_Store files ended up in the final package:
$ grep DS_S boms.txt
[1]
Augie Fackler
tests: add test for Mac OS X package construction
r29025 Spot-check some randomly selected files:
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ grep bdiff boms.txt | cut -d ' ' -f 1,2,3
Augie Fackler
osx: update Mac packaging tests for bdiff.so install location change
r32469 ./Library/Python/2.7/site-packages/mercurial/cext/bdiff.so 100755 0/0
Augie Fackler
tests: update mac packaging test expectations...
r33594 ./Library/Python/2.7/site-packages/mercurial/cffi/bdiff.py 100644 0/0
./Library/Python/2.7/site-packages/mercurial/cffi/bdiff.pyc 100644 0/0
./Library/Python/2.7/site-packages/mercurial/cffi/bdiff.pyo 100644 0/0
./Library/Python/2.7/site-packages/mercurial/cffi/bdiffbuild.py 100644 0/0
./Library/Python/2.7/site-packages/mercurial/cffi/bdiffbuild.pyc 100644 0/0
./Library/Python/2.7/site-packages/mercurial/cffi/bdiffbuild.pyo 100644 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.py 100644 0/0
./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyc 100644 0/0
./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyo 100644 0/0
Kyle Lippincott
zsh_completion: install as _hg not hg...
r32604 $ grep zsh/site-functions/_hg boms.txt | cut -d ' ' -f 1,2,3
./usr/local/share/zsh/site-functions/_hg 100644 0/0
Augie Fackler
osx: install bash and zsh completions by default...
r31142 $ grep hg-completion.bash boms.txt | cut -d ' ' -f 1,2,3
Augie Fackler
osx: install completion scripts using install(1) to avoid umask badness...
r31609 ./usr/local/hg/contrib/hg-completion.bash 100644 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 $ egrep 'man[15]' boms.txt | cut -d ' ' -f 1,2,3
./usr/local/share/man/man1 40755 0/0
Augie Fackler
osx: include chg by default
r32471 ./usr/local/share/man/man1/chg.1 100644 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 ./usr/local/share/man/man1/hg.1 100644 0/0
./usr/local/share/man/man5 40755 0/0
./usr/local/share/man/man5/hgignore.5 100644 0/0
./usr/local/share/man/man5/hgrc.5 100644 0/0
$ grep bser boms.txt | cut -d ' ' -f 1,2,3
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/bser.so 100755 0/0
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.py 100644 0/0
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyc 100644 0/0
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyo 100644 0/0
$ grep localrepo boms.txt | cut -d ' ' -f 1,2,3
./Library/Python/2.7/site-packages/mercurial/localrepo.py 100644 0/0
./Library/Python/2.7/site-packages/mercurial/localrepo.pyc 100644 0/0
./Library/Python/2.7/site-packages/mercurial/localrepo.pyo 100644 0/0
Augie Fackler
osx: include chg by default
r32471 $ egrep 'bin/' boms.txt | cut -d ' ' -f 1,2,3
./usr/local/bin/chg 100755 0/0
Kevin Bullock
osx: create a modern package including manpages...
r29027 ./usr/local/bin/hg 100755 0/0
Augie Fackler
tests: add test for Mac OS X package construction
r29025
Augie Fackler
osx: explicitly build hg with /usr/bin/python2.7...
r29535 Make sure the built binary uses the system Python interpreter
$ bsdtar xf mercurial.pkg/Payload usr/local/bin
Use a glob to find this to avoid check-code whining about a fixed path.
$ head -n 1 usr/local/b?n/hg
#!/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Augie Fackler
tests: add test for Mac OS X package construction
r29025 Note that we're not currently installing any /etc/mercurial stuff,
including merge-tool configurations.