RangeError when create merge request

About the background, sometimes my project has very huge merge request that it may contains about 900+files 400,000+lines changed. The default diff settings don’t allow me to show all the changed files in changes tab. So i change the datatype of diff_max_patch_bytes in application_settings table into bigint.

Now i success increase the MAX_PATCH_BYTES_UPPER_BOUND setting over original upper limit. But when i create a new merge request, the gitlab return 500 errors.

Following is the error info:

RangeError (integer 10737418240 too big to convert to `int'):

lib/gitlab/gitaly_client/commit_service.rb:471:in `initialize'
lib/gitlab/gitaly_client/commit_service.rb:471:in `new'
lib/gitlab/gitaly_client/commit_service.rb:471:in `call_commit_diff'
lib/gitlab/gitaly_client/commit_service.rb:64:in `diff'
lib/gitlab/git/repository.rb:479:in `diff'
lib/gitlab/git/diff.rb:57:in `between'
lib/gitlab/git/compare.rb:43:in `diffs'
app/models/merge_request_diff.rb:722:in `save_diffs'
app/models/merge_request_diff.rb:208:in `save_git_content'
lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `block in write_using_load_balancer'
lib/gitlab/database/load_balancing/load_balancer.rb:112:in `block in read_write'
lib/gitlab/database/load_balancing/load_balancer.rb:172:in `retry_with_backoff'
lib/gitlab/database/load_balancing/load_balancer.rb:110:in `read_write'
lib/gitlab/database/load_balancing/connection_proxy.rb:125:in `write_using_load_balancer'
lib/gitlab/database/load_balancing/connection_proxy.rb:77:in `transaction'
lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `block in write_using_load_balancer'
lib/gitlab/database/load_balancing/load_balancer.rb:112:in `block in read_write'
lib/gitlab/database/load_balancing/load_balancer.rb:172:in `retry_with_backoff'
lib/gitlab/database/load_balancing/load_balancer.rb:110:in `read_write'
lib/gitlab/database/load_balancing/connection_proxy.rb:125:in `write_using_load_balancer'
lib/gitlab/database/load_balancing/connection_proxy.rb:77:in `transaction'
lib/gitlab/database.rb:265:in `block in transaction'
lib/gitlab/database.rb:264:in `transaction'

It seems like this param is packaged into CommitDiffRequest and send to Gitaly. In gitaly, the param is set to proto3 int32, so this num is over range.

May i ask how to increase this limit without change the Gitaly source code? Or how to show all 900+ changed files in one merge request?
I would appreciate any help.