Mercurial repository requires features unknown to this Mercurial: largefiles!

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

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.

*Except Fisheye and Crucible

Problem

Adding a Mercurial repository with Large Files extension enabled makes the Fisheye index fail:

The following appears in the 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


Cause

The repository has Large Files extension enabled and the same is not enabled in Fisheye server.

Workaround

  1. Edit the Mercurial configuration file found in the server hosting Fisheye:
    1. In Linux / MacOS environments, this file may be /home/<fisheye_user>/.hgrc or /home/<fisheye_user>/mercurial.ini
    2. In Windows environments this file may be %USERPROFILE%\.hgrc or %USERPROFILE%\mercurial.ini:
  2. Enable the extension by adding the following to the file:

    [extensions]
    largefiles =
  3. 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.
  4. In Fisheye, go to the repository options and on the Maintenance tab hit :
  5. 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:



Last modified on Sep 10, 2020

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.