files_sorted_by_created_at

in lib/rugged_adapter/git_layer_rugged.rb [635:657]


      def files_sorted_by_created_at(sha = nil)
        sha ||= @repo.head.target.oid

        file_renamings = {}
        sorting = Rugged::SORT_DATE | Rugged::SORT_TOPO

        @repo.walk(sha, sorting).with_object([]) do |commit, files|
          parent = commit.parents.first

          diff = commit.diff(parent, reverse: true)
          diff.find_similar!
          diff.each_delta do |delta|
            name = delta.new_file[:path]

            if delta.added?
              files << (file_renamings[name] || name)
            elsif delta.renamed?
              file_renamings[delta.old_file[:path]] = file_renamings[name] || name
            end
          end
        end
      end