2017-02-14 11 views
1

Subversionの$Id: $機能をgitで複製しようとしています。私は.gitattributesを使用してident属性を設定できることを知っています。これにより、ソースコードコメントにBLOB IDを埋め込むことができます。それが基本的な要件であり、私はそれをカバーしています。git:ブロブからファイル履歴を見つける方法ID

しかし、IDを実用的な意味でどのように役立てることができるかを考えるのは苦労しています。 git loggit blameにはファイル名が必要なので、そのIDを使用することはできません。 git showはBLOBの内容を表示するだけですが、コミットへのリンクは与えません。

ブロブIDを指定すると、そのブロブを作成したコミットを得ることができます。 (最終的には、ファイルのデータをgit logまたはgit blameにするか、そのファイルを含むリビジョンをチェックアウトできるようにする)。

gitのような分散システムのコミット履歴は、Subversionよりも複雑ですが、何かを出発点として得ることができれば十分です。私が本当に必要とするのは、ソースコードが与えられていることを実証できることです。私はバージョン管理履歴を追跡できます。

+0

https://stackoverflow.com/questions/39601215/finding-a-file-by-its-corresponding-blobs-hash-in-a-git-repositoryます。https: //stackoverflow.com/questions/33211914/how-to-find-all-uses-of-a-blob-in-a-git-repo https://stackoverflow.com/questions/223678/which-commit-has - このブロブ –

答えて

0

gitタグコマンドはどうなりますか?出発点として、このリンクをチェックしてください:あなたはそれをオンにして含まれるようにコミットハッシュ、または$Format:%d$を追加するために$Format:%H$を使用できるように、ブロブIDに加えて

https://git-scm.com/book/en/v2/Git-Basics-Tagging

0

を、gitattributesマニュアルでは、export-substフィルタを記述しますブランチ/タグ名。 git archiveを使用してファイルを解放する必要があります。例えば

$ cat .gitattributes 
* export-subst ident 
$ cat foo.c 
// Blob hash: $Id$ 
// Commit hash: $Format:%H%d$ 
$ git archive master | tar -xO 
* export-subst ident 
// Blob hash: $Id: 9e0569a55a4eaacdf8d100a2c3d3654cf767650b $ 
// Commit hash: 3802b7884faf182ce0994ac9d94925dad375be05 (HEAD -> master, tag: v2) 
関連する問題