---
docgen:
  source: npm/scripts/utils/worktree-fingerprint.mjs
  crc: df297382
---

# worktree-fingerprint.mjs

## Огляд

Файл надає унікальний відбиток робочої директорії. Цей відбиток використовується для ідентифікації та порівняння робочих директорій, забезпечуючи їх унікальність у системі. Він слугує базовим інструментом для відстеження та управління версіями.

## Поведінка

1.  Отримує поточний SHA256 хеш коміту, який знаходиться в гілці HEAD.
2.  Отримує текст зміни між комітом HEAD та робочим каталогом.
3.  Отримує список не відстежених файлів у робочому каталозі, не включаючи стандартні файли, що ігноруються.
4.  Для кожного не відстеженого файлу отримує його SHA256 хеш.
5.  Об'єднує SHA256 хеш коміту, текст зміни та пари "файл:хеш" не відстежених файлів, розділяючи їх новими рядками.
6.  Обчислює SHA256 хеш отриманого текстового рядка.
7.  Повертає отриманий SHA256 хеш у форматі 64-значної шестнадцяткової строки.
8.  Якщо виникає помилка під час виконання будь-якої з операцій, повертає `null`.

## Публічний API

worktreeFingerprint — генерує унікальний відбиток поточного стану репозиторію Git.

## Гарантії поведінки

- Функція повертає `true`, якщо відбиток дерева робіт успішно обчислено.
- Функція повертає `null`, якщо обчислення відбитка дерева робіт не вдалося.
- Функція не викликає винятків.
- Функція не використовує кеш.
