libgit2 / libgit2/libgit2

Error when applying patch that removes submodule

Đang mở
#6,779 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
C
Star
10.6k
Fork
2.7k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Reproduction steps

on any existing repo that contains a submodule generate a diff that removes it:

$ git rm <submodule name>
$ git diff --staged > remove-submodule.patch

(I used git 2.25.1)
my generated patch looks like this:

diff --git a/.gitmodules b/.gitmodules
index 1b59123..e69de29 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +0,0 @@
-[submodule "submodule"]
-	path = submodule
-	url = ../submodule
diff --git a/submodule b/submodule
deleted file mode 160000
index xxxxx..0000000
--- a/fus-modules
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit xxxxxxxxxxxxxxxxxxxxxxxxxxx

And when running this small program that uses libgit2:
test.c.txt
built using
gcc test.c -lgit2 -L <path to libgit2>/libgit2/build/ -Wall -pedantic -I <path to libgit2>/libgit2/include/
And run like this:
LD_LIBRARY_PATH=<path to libgit2>/libgit2/build/ ./a.out <Path to repo> <path to patch file>

Expected behavior

It successfully applies the change

Actual behavior

Error applying patch: -1 no error

I checked also modifying the submodule and it fails too

Version of libgit2 (release number or SHA1)

1.3.0 and main ( d74d491481831ddcd23575d376e56d2197e95910 )

Operating system(s) tested

Linux (Ubuntu 20.04)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với chương trình test.c.txt được đính kèm và tái hiện lỗi bằng một patch xóa hoặc sửa đổi một submodule. Truy vết đường đi áp dụng patch cho kết quả được báo cáo “-1 no error”, sau đó xác minh rằng patch xóa được cung cấp áp dụng thành công trên Linux. Issue không nêu tên tệp nguồn hoặc bài kiểm thử hồi quy, vì vậy việc xác định phần triển khai liên quan và phạm vi bao phủ kiểm thử sẽ cần nghiên cứu repository.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
c, git
Lĩnh vực
devtools, tooling
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.