- Notifications
You must be signed in to change notification settings - Fork5
yeonjuan/parse-git-diff
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A parser for git diff.
npm install parse-git-diff
Seeonline demo
importparseGitDifffrom'parse-git-diff';// import// orconstparseGitDiff=require('parse-git-diff').default;// require
importparseGitDifffrom'parse-git-diff';constresult=parseGitDiff('... git diff ...');console.log(result);// {// "type": "GitDiff",// "files": [// {// "type": "AddedFile",// "chunks": [// {// "type": "Chunk",// "toFileRange": {// "start": 1,// ...// }
Specifies whether the git diff command is used with the--no-prefix
option. (default:false
)
// git diff HEAD~3 --no-prefixconstresult=parseGitDiff(DIFF,{noPrefix:true,});
New file diff
diff --git a/newfile.md b/newfile.mdnew file mode 100644index 0000000..aa39060--- /dev/null+++ b/newfile.md@@ -0,0 +1 @@+newfile
{"type":"GitDiff","files": [ {"type":"AddedFile","chunks": [ {"type":"Chunk","toFileRange": {"start":1,"lines":1 },"fromFileRange": {"start":0,"lines":0 },"changes": [ {"type":"AddedLine","lineAfter":1,"content":"newfile" } ] } ],"path":"newfile.md" } ]}
Deleted file diff
diff --git a/newfile.md b/newfile.mddeleted file mode 100644index aa39060..0000000--- a/newfile.md+++ /dev/null@@ -1 +0,0 @@-newfile
{"type":"GitDiff","files": [ {"type":"DeletedFile","chunks": [ {"type":"Chunk","toFileRange": {"start":0,"lines":0 },"fromFileRange": {"start":1,"lines":1 },"changes": [ {"type":"DeletedLine","lineBefore":1,"content":"newfile" } ] } ],"path":"newfile.md" } ]}
Renamed file diff
diff --git a/newfile.md b/rename.mdsimilarity index 100%rename from newfile.mdrename to rename.md
{"type":"GitDiff","files": [ {"type":"RenamedFile","pathAfter":"rename.md","pathBefore":"newfile.md","chunks": [] } ]}
Conflict file diff
diff --cc README.mdindex 2445f65,f4b8569..0000000--- a/README.md+++ b/README.md@@@ -8,7 -8,7 +8,11 @@@ npm install parse-git-diff++<<<<<<< HEAD +## a++=======+ ## b++>>>>>>> branch-b - [demo](https://yeonjuan.github.io/parse-git-diff/)
{"type":"GitDiff","files": [ {"type":"ChangedFile","chunks": [ {"type":"CombinedChunk","fromFileRangeA": {"start":8,"lines":7 },"fromFileRangeB": {"start":8,"lines":7 },"toFileRange": {"start":8,"lines":11 },"changes": [ {"type":"UnchangedLine","lineBefore":8,"lineAfter":8,"content":" npm install parse-git-diff" }, {"type":"UnchangedLine","lineBefore":9,"lineAfter":9,"content":"" }, {"type":"UnchangedLine","lineBefore":10,"lineAfter":10,"content":"" }, {"type":"AddedLine","lineAfter":11,"content":"+<<<<<<< HEAD" }, {"type":"UnchangedLine","lineBefore":11,"lineAfter":12,"content":"+## a" }, {"type":"AddedLine","lineAfter":13,"content":"+=======" }, {"type":"AddedLine","lineAfter":14,"content":" ## b" }, {"type":"AddedLine","lineAfter":15,"content":"+>>>>>>> branch-b" }, {"type":"UnchangedLine","lineBefore":12,"lineAfter":16,"content":"" }, {"type":"UnchangedLine","lineBefore":13,"lineAfter":17,"content":" - [demo](https://yeonjuan.github.io/parse-git-diff/)" }, {"type":"UnchangedLine","lineBefore":14,"lineAfter":18,"content":"" }, {"type":"UnchangedLine","lineBefore":15,"lineAfter":19,"content":"" } ] } ],"path":"README.md" } ]}
New line file diff
diff --git a/rename.md b/rename.mdindex aa39060..0e05564 100644--- a/rename.md+++ b/rename.md@@ -1 +1,2 @@ newfile+newline
{"type":"GitDiff","files": [ {"type":"ChangedFile","chunks": [ {"type":"Chunk","toFileRange": {"start":1,"lines":2 },"fromFileRange": {"start":1,"lines":1 },"changes": [ {"type":"UnchangedLine","lineBefore":1,"lineAfter":1,"content":"newfile" }, {"type":"AddedLine","lineAfter":2,"content":"newline" } ] } ],"path":"rename.md" } ]}
Deleted line file diff
diff --git a/rename.md b/rename.mdindex 0e05564..aa39060 100644--- a/rename.md+++ b/rename.md@@ -1,2 +1 @@ newfile-newline
{"type":"GitDiff","files": [ {"type":"ChangedFile","chunks": [ {"type":"Chunk","toFileRange": {"start":1,"lines":1 },"fromFileRange": {"start":1,"lines":2 },"changes": [ {"type":"UnchangedLine","lineBefore":1,"lineAfter":1,"content":"newfile" }, {"type":"DeletedLine","lineBefore":2,"content":"newline" } ] } ],"path":"rename.md" } ]}
diff --git a/rename.md b/rename.mdindex 0e05564..aa39060 100644--- a/rename.md+++ b/rename.md@@ -1,2 +1 @@ newfile-newline+newline\ No newline at end of filediff --git a/rename2.md b/rename2.mdindex 0e05564..aa39060 100644--- a/rename2.md+++ b/rename2.md@@ -1,2 +1 @@ newfile2-newline2+newline2\ No newline at end of file
{"type":"GitDiff","files": [ {"type":"ChangedFile","chunks": [ {"type":"Chunk","toFileRange": {"start":1,"lines":1 },"fromFileRange": {"start":1,"lines":2 },"changes": [ {"type":"UnchangedLine","lineBefore":1,"lineAfter":1,"content":"newfile" }, {"type":"DeletedLine","lineBefore":2,"content":"newline" }, {"type":"AddedLine","lineAfter":2,"content":"newline" }, {"type":"MessageLine","content":"No newline at end of file" } ] } ],"path":"rename.md" }, {"type":"ChangedFile","chunks": [ {"type":"Chunk","toFileRange": {"start":1,"lines":1 },"fromFileRange": {"start":1,"lines":2 },"changes": [ {"type":"UnchangedLine","lineBefore":1,"lineAfter":1,"content":"newfile2" }, {"type":"DeletedLine","lineBefore":2,"content":"newline2" }, {"type":"AddedLine","lineAfter":2,"content":"newline2" }, {"type":"MessageLine","content":"No newline at end of file" } ] } ],"path":"rename2.md" } ]}
See thetypes.ts file for all AST formats.
About
parse git diff
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.