Skip to content

CommitObject の実装#20

Merged
massan02 merged 7 commits intomainfrom
ulxsth/commit-obj
Mar 28, 2025
Merged

CommitObject の実装#20
massan02 merged 7 commits intomainfrom
ulxsth/commit-obj

Conversation

@ulxsth
Copy link
Contributor

@ulxsth ulxsth commented Mar 27, 2025

Details

Commit オブジェクトを管理する GitCommitObject インタフェースと、それを呼び出す loadCommit、書き出す saveCommit を実装した。

注意

author, commiter については固定値になっています。

author: { name: 'John Doe', email: 'johndoe@example.com' },
commiter: { name: 'Jane Doe', email: 'janedoe@example.com' },

Debug

example フォルダ内でイカを実行してください。

npx tsx ../src/scripts/debug/commit.ts

内部では load -> save の順で動作しています。エラーが発生しなかったら OK。

$ nlx tsx ../src/scripts/debug/commit.ts
Loading commit with hash: 116bef9202546407befeb4f3d6f5dbbafa03b99a
Loaded commit: {
  hash: '116bef9202546407befeb4f3d6f5dbbafa03b99a',
  treeHash: '58c608a3fa830548019591fc45f307554ca9a57f',
  createdAt: +057205-08-16T02:30:22.000Z,
  author: { name: 'John Doe', email: 'johndoe@example.com' },
  commiter: { name: 'Jane Doe', email: 'janedoe@example.com' },
  content: 'a\n'
}
Saving commit...
Hash: 870b72e77684946c5efea44bad58a31cd9cc6c40
Commit saved successfully.

@massan02
Copy link
Contributor

えらーがはっせいしちゃいました 何が原因か調べてみます
Loading commit with hash: 116bef9202546407befeb4f3d6f5dbbafa03b99a
Error during commit debug process: Error: ENOENT: no such file or directory, open '/Users/murasakimasato/Documents/GitHub/git-intern-2025-term1/example/.git/objects/11/6bef9202546407befeb4f3d6f5dbbafa03b99a'
at Object.openSync (node:fs:563:18)
at Object.readFileSync (node:fs:447:35)
at loadCommit (/Users/murasakimasato/Documents/GitHub/git-intern-2025-term1/src/commit.ts:13:22)
at debugCommit (/Users/murasakimasato/Documents/GitHub/git-intern-2025-term1/src/scripts/debug/commit.ts:6:20)
at (/Users/murasakimasato/Documents/GitHub/git-intern-2025-term1/src/scripts/debug/commit.ts:19:1)
at ModuleJob.run (node:internal/modules/esm/module_job:274:25)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:644:26)
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:98:5) {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/Users/murasakimasato/Documents/GitHub/git-intern-2025-term1/example/.git/objects/11/6bef9202546407befeb4f3d6f5dbbafa03b99a'

@massan02 massan02 merged commit 6a67239 into main Mar 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants