Mercurial repository requires features unknown to this Mercurial: largefiles!
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
Adding a Mercurial repository with Large Files extension enabled makes the Fisheye index fail:
atlassian-fisheye-yyyy-MM-dd.log:
に次のメッセージが出力される。
2017-08-03 14:07:36,671 DEBUG [InitPing1 Large_FIles_Test ] fisheye RepositoryStatus-setEngineError - Engine Error Set [Large_FIles_Test]: Unable to pull from remote repository: file:///data/crucible/fecru_data/mercurial_large_1
- [abort: repository requires features unknown to this Mercurial: largefiles!, (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)]
2017-08-03 14:07:36,671 WARN [InitPing1 Large_FIles_Test ] fisheye IndexingPingRequest-doRequest - Exception during FishEye One-off Indexing of Large_FIles_Test: com.cenqua.fisheye.config.ConfigException: Unable to pull from remote repository: file:///data/crucible/fecru_data/mercurial_large_1
- [abort: repository requires features unknown to this Mercurial: largefiles!, (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)]
2017-08-03 14:07:36,671 DEBUG [InitPing1 Large_FIles_Test ] fisheye IndexingPingRequest-doRequest - Exception during FishEye One-off Indexing of Large_FIles_Test: com.cenqua.fisheye.config.ConfigException: Unable to pull from remote repository: file:///data/crucible/fecru_data/mercurial_large_1
- [abort: repository requires features unknown to this Mercurial: largefiles!, (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)]
com.cenqua.fisheye.config.ConfigException: Unable to pull from remote repository: file:///data/crucible/fecru_data/mercurial_large_1
- [abort: repository requires features unknown to this Mercurial: largefiles!, (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)]
at com.atlassian.fisheye.hg.HgScanner.fetchLatest(HgScanner.java:164) [fisheye.jar:?]
at com.atlassian.fisheye.hg.HgScanner.performClone(HgScanner.java:123) [fisheye.jar:?]
at com.atlassian.fisheye.dvcs.DvcsScanner.cloneRepo(DvcsScanner.java:165) [fisheye.jar:?]
at com.atlassian.fisheye.dvcs.DvcsScanner.updateLocalRepoClone(DvcsScanner.java:137) [fisheye.jar:?]
at com.cenqua.fisheye.rep.BaseRepositoryScanner.ping(BaseRepositoryScanner.java:69) [fisheye.jar:?]
at com.cenqua.fisheye.rep.BaseRepositoryEngine.doSlurp(BaseRepositoryEngine.java:86) [fisheye.jar:?]
at com.cenqua.fisheye.rep.RepositoryEngine.slurp(RepositoryEngine.java:415) [fisheye.jar:?]
at com.cenqua.fisheye.rep.ping.IndexingPingRequest.doRequest(IndexingPingRequest.java:27) [fisheye.jar:?]
at com.cenqua.fisheye.rep.ping.OneOffPingRequest.doRequest(OneOffPingRequest.java:18) [fisheye.jar:?]
at com.cenqua.fisheye.rep.ping.PingRequest$1.run(PingRequest.java:55) [fisheye.jar:?]
at com.cenqua.fisheye.util.NamedExecution.run(NamedExecution.java:27) [fisheye.jar:?]
at com.cenqua.fisheye.rep.ping.PingRequest.process(PingRequest.java:52) [fisheye.jar:?]
at com.cenqua.fisheye.rep.RepositoryHandle.processPingRequests(RepositoryHandle.java:216) [fisheye.jar:?]
at com.cenqua.fisheye.rep.RepositoryHandle.access$100(RepositoryHandle.java:58) [fisheye.jar:?]
at com.cenqua.fisheye.rep.RepositoryHandle$2.run(RepositoryHandle.java:172) [fisheye.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45-internal]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45-internal]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
Caused by: com.atlassian.utils.process.ProcessException: While executing: "/usr/bin/hg --config ui.verbose=false pull file:///data/crucible/fecru_data/mercurial_large_1" in [/atlassian/data/fisheye/var/cache/Large_FIles_Test/clone]
at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:263) [fisheye.jar:?]
at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:235) [fisheye.jar:?]
at com.atlassian.fisheye.hg.HgScanner.fetchLatest(HgScanner.java:158) [fisheye.jar:?]
... 17 more
Caused by: com.atlassian.utils.process.ProcessException: Non-zero exit code: 255
at com.atlassian.utils.process.PluggableProcessHandler.complete(PluggableProcessHandler.java:69) [atlassian-processutils-1.5.14.jar:?]
at com.atlassian.utils.process.ExternalProcessImpl.wrapUpProcess(ExternalProcessImpl.java:509) [atlassian-processutils-1.5.14.jar:?]
at com.atlassian.utils.process.ExternalProcessImpl.finish(ExternalProcessImpl.java:423) [atlassian-processutils-1.5.14.jar:?]
at com.atlassian.utils.process.ExternalProcessImpl.execute(ExternalProcessImpl.java:378) [atlassian-processutils-1.5.14.jar:?]
at com.atlassian.fisheye.dvcs.client.DvcsContext.executeCommand(DvcsContext.java:250) [fisheye.jar:?]
... 19 more
2017-08-03 14:07:36,672 DEBUG [InitPing1 Large_FIles_Test ] fisheye RepositoryHandle-release - release engine on Large_FIles_Test, count=0 waited 0 ms to release
2017-08-03 14:07:36,672 DEBUG [InitPing1 Large_FIles_Test ] fisheye RepositoryHandle-acquire - acquire engine on Large_FIles_Test, count=1, waited 0 ms to acquire.
2017-08-03 14:07:36,672 DEBUG [InitPing1 Large_FIles_Test ] fisheye RepositoryHandle-release - release engine on Large_FIles_Test, count=0 waited 0 ms to release
Or the following appears in the atlassian-fisheye-yyyy-MM-dd.log:
2020-08-25 00:27:35,251 WARN [InitPing2 reponame ] fisheye IndexingPingRequest-doRequest - Exception during Fisheye Incremental Indexing of reponame (reponame): com.cenqua.fisheye.config.ConfigException: Unable to pull from remote repository: http://mercurialuser@myhost/hg/reponame
- [abort: remote error:, , This repository uses the largefiles extension., , Please enable it in your Mercurial config file.]
- pulling from http://mercurialuser:XXXX@myhost/hg/reponame
原因
The repository has Large Files extension enabled and the same is not enabled in Fisheye server.
回避策
- Edit the Mercurial configuration file found in the server hosting Fisheye:
- In Linux / MacOS environments, this file may be
/home/<fisheye_user>/.hgrc
or/home/<fisheye_user>/mercurial.ini
- In Windows environments this file may be
%USERPROFILE%\.hgrc
or%USERPROFILE%\mercurial.ini
:
- In Linux / MacOS environments, this file may be
Enable the extension by adding the following to the file:
[extensions] largefiles =
After enabling the extension you may need to configure it in a new section after the
[extensions]
section called[largefiles]:
[largefiles] patterns = re:.*\.(png|bmp|jpg|zip|tar|tar.gz|rar)$ minsize = 10
Where, according to Mercurial documentation:
- The
patterns
setting allows you to specify specific space-separated filename patterns that should always be tracked as large files. - The value of
minsize
setting is given in Megabytes and the default is 10. You may want to try configuring a higher value for this setting.
- The
- In Fisheye, go to the repository options and on the Maintenance tab hit
:
- Wait for the repository to be re-cloned and re-indexed from scratch.
The indexed repository will not show content for the large files in the diff or source panels but only the hash for the large file: