Skip to content

Ignore invalid lines in .gitmodules

Douwe Maan requested to merge stanhu/gitlab_git-improve-gitmodules-parsing into master

Replaces !23 (closed)

A .gitmodules file that had any trailing lines (e.g. comments, tabs, etc.) after a valid submodule definition would cause 500 Errors in GitLab:

ActionView::Template::Error (undefined method `[]' for nil:NilClass):
    11:           = view_file_btn(@commit.parent_id, diff_file, project)
    12:     - elsif diff_file.diff.submodule?
    13:       - submodule_item = project.repository.blob_at(@commit.id, diff_file.file_path)
    14:       = submodule_link(submodule_item, @commit.id)
    15:     - else
    16:       - if diff_file.renamed_file
    17:         %span= "#{diff_file.old_path} renamed to #{diff_file.new_path}"
  app/models/repository.rb:170:in `method_missing'
  app/models/repository.rb:232:in `submodule_url_for'
  app/helpers/submodule_helper.rb:6:in `submodule_links`

I tried writing a test for it, but writing and committing to a .gitmodules file seemed unnecessarily painful in the unit tests. It would be easier just to add comments to the end of the existing .gitmodules file. I'll send a separate MR for that.

Merge request reports