fnmatch patterns has preblem in diff
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia eseguendo la riproduzione inline di Minitest e conferma il fallimento per il percorso con spazio finale. Poi segui il filtraggio dei percorsi attraverso l’estensione di Rugged e il confine con libgit2, usando le chiamate diff esistenti come punto di ingresso. Il lavoro è completato quando il test include la patch B e i casi senza filtro e con il match disabilitato continuano a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
When target file path has a space(eg: 'README.md '), Rugged::Tree.diff(..., paths: ['README.md ']).patches return empty array.
This should be a problem caused by the ext or libgit2, but I have not learn C language and I can't fix it.
Can you help me deal with it? Thanks.
Steps to reproduce
# frozen_string_literal: true
require 'bundler/inline'
gemfile(true) do
source 'https://gems.ruby-china.com'
gem 'minitest'
gem 'rugged'
end
require 'minitest/autorun'
require 'rugged'
class DiffBugTest < Minitest::Test
def setup
author = committer = { name: 'foobar', email: 'foobar@test.com', time: Time.now }
@repository = Rugged::Repository.init_at('/tmp/rugged_test_repository.git', true)
@repository.index << { path: 'A', mode: 0o100644, oid: @repository.write('A file', :blob)}
@repository.index << { path: 'B ', mode: 0o100644, oid: @repository.write('B file', :blob)} # NOTE: 'B ' path has a space
@first_oid = Rugged::Commit.create(
@repository,
author: author,
committer: committer,
message: 'First commit',
parents: [],
tree: @repository.index.write_tree,
)
@repository.index << { path: 'A', mode: 0o100644, oid: @repository.write('Modified A file', :blob)}
@repository.index << { path: 'B ', mode: 0o100644, oid: @repository.write('Modified B file', :blob)} # NOTE: 'B ' path has a space
@second_oid = Rugged::Commit.create(
@repository,
author: author,
committer: committer,
message: 'Second commit',
parents: [@first_oid],
tree: @repository.index.write_tree,
)
end
# NOTE: 'B ' path has a space
def test_path_end_with_space
# Success
assert_equal 2, @repository.diff(@first_oid, @second_oid).patches.size
assert_equal 2, @repository.diff(@first_oid, @second_oid, paths: ['A', 'B '], disable_pathspec_match: true).patches.size
# Failure
assert_equal 2, @repository.diff(@first_oid, @second_oid, paths: ['A', 'B ']).patches.size # => Missing 'B ' patch
end
end
PS: English is not my native language; please excuse typing errors.
- Lingua principale
- C
- Stelle
- 2.3k
- Fork
- 293
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di libgit2/rugged
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
Tutte le issue di libgit2/rugged
Issue simili
-
level/task module/gcp type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
hapostgres/pg_auto_failover#1190 ·
-
docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
P3 sonic-vpp
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
sonic-net/sonic-buildimage#29662 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 94/100
spack/spack-packages#6586 ·