gabrielcsapo / gabrielcsapo/node-git-server
If the tag contains `00`, it will break there
- Ngôn ngữ chính
- TypeScript
- Star
- 262
- Fork
- 81
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
I tried to push the following tag: `v72.94001.10`
However, the tag passed to the `tag` event was the following value:
```js
const { Git } = require('node-git-server');
const repos = new Git('path/to/tmp', {
autoCreate: true,
});
repos.on('tag', (tag) => {
// tag.version === 'v72.94' // What!?
});
repos.listen(49152, { type: 'http' }, () => {
// ...
});
repos.server.on('error', err => { throw err });
```
Apparently, tag names are cut off when `00` is encountered.
I have looked into the reason for this and found the following regular expression to be the cause.
https://github.com/gabrielcsapo/node-git-server/blob/2ab22a4d3f1a9c77314236c401e176f994f2f758/src/service.ts#L13
[This pattern is defined so that tag names after spaces, null characters, or `00` are not retrieved](https://regexper.com/#%28%5B0-9a-fA-F%5D%2B%29%20%28%5B0-9a-fA-F%5D%2B%29%20refs%5C%2F%28heads%7Ctags%29%5C%2F%28.*%3F%29%28%20%7C00%7C%5Cu0000%29%7C%5E%280000%29%24).
_Why?_ Tag names (and branch names) can contain `00`. What is the reason for excluding anything after `00`?
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Tái hiện vấn đề với tag v72.94001.10 trong báo cáo, sau đó kiểm tra biểu thức chính quy tại dòng 13 của src/service.ts và phần phân tích các sự kiện tag xung quanh. Xác nhận rằng tên tag và branch chứa 00 được giữ nguyên, trong khi hành vi phân tích ref hiện có vẫn không thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- git, node.js, typescript
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 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
- 45/100