Telegram Group & Telegram Channel
​​DeepGit: Hashing names

Ч1, Ч2, Ч3

Что-бы закончить с blob-aми , деревьями и коммитами надо разобраться как git генерирует имена файлам и как хранит все версии всех файлов.

Название git файла определяется следующим образом:
 tree #{text.lenght}\0

Общее правило: тип файла => решетка => длина текста => нулевой байт.

Это наш хедер.

Что-бы получить название файла:
Добавляем к хедеру текст файла и берем SHA1 сумму от результата.

Текст файла git сжимает через zlib.

Как это можно реализовать на python:
 [1]: import hashlib
In [2]: from hashlib import sha1
In [3]: sha = hashlib.sha1()
In [4]: line = "developer tools test line"
In [5]: header = f"blob {line.__len__()}\0"
In [6]: content = (header + line).encode()
In [7]: sha.update(content)
In [8]: sha.hexdigest()
Out[8]: '7f0571380d1f5e2a2fb13bb25eeefe5761895e7a'
In [9]: import zlib
In [10]: zlib.compress(content)

Первые два символа из 7f0571380d1f5e2a2fb13bb25eeefe5761895e7a пойдут как название директории, а остальные в название файла.

Резюме: Внутри git нет никакой магии, все данные весьма просто храняться и так-же просто используются.

Напоминаю Вам, что у нас есть чат: https://www.tg-me.com/cn/Dev Tools/com.developer_tools_chat , непонимаю почему вас там так мало :)



tg-me.com/developer_tools/242
Create:
Last Update:

​​DeepGit: Hashing names

Ч1, Ч2, Ч3

Что-бы закончить с blob-aми , деревьями и коммитами надо разобраться как git генерирует имена файлам и как хранит все версии всех файлов.

Название git файла определяется следующим образом:

 tree #{text.lenght}\0

Общее правило: тип файла => решетка => длина текста => нулевой байт.

Это наш хедер.

Что-бы получить название файла:
Добавляем к хедеру текст файла и берем SHA1 сумму от результата.

Текст файла git сжимает через zlib.

Как это можно реализовать на python:
 [1]: import hashlib
In [2]: from hashlib import sha1
In [3]: sha = hashlib.sha1()
In [4]: line = "developer tools test line"
In [5]: header = f"blob {line.__len__()}\0"
In [6]: content = (header + line).encode()
In [7]: sha.update(content)
In [8]: sha.hexdigest()
Out[8]: '7f0571380d1f5e2a2fb13bb25eeefe5761895e7a'
In [9]: import zlib
In [10]: zlib.compress(content)

Первые два символа из 7f0571380d1f5e2a2fb13bb25eeefe5761895e7a пойдут как название директории, а остальные в название файла.

Резюме: Внутри git нет никакой магии, все данные весьма просто храняться и так-же просто используются.

Напоминаю Вам, что у нас есть чат: https://www.tg-me.com/cn/Dev Tools/com.developer_tools_chat , непонимаю почему вас там так мало :)

BY Dev Tools


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/developer_tools/242

View MORE
Open in Telegram


Dev Tools Telegram | DID YOU KNOW?

Date: |

Telegram Be The Next Best SPAC

I have no inside knowledge of a potential stock listing of the popular anti-Whatsapp messaging app, Telegram. But I know this much, judging by most people I talk to, especially crypto investors, if Telegram ever went public, people would gobble it up. I know I would. I’m waiting for it. So is Sergei Sergienko, who claims he owns $800,000 of Telegram’s pre-initial coin offering (ICO) tokens. “If Telegram does a SPAC IPO, there would be demand for this issue. It would probably outstrip the interest we saw during the ICO. Why? Because as of right now Telegram looks like a liberal application that can accept anyone - right after WhatsApp and others have turn on the censorship,” he says.

Launched in 2013, Telegram allows users to broadcast messages to a following via “channels”, or create public and private groups that are simple for others to access. Users can also send and receive large data files, including text and zip files, directly via the app.The platform said it has more than 500m active users, and topped 1bn downloads in August, according to data from SensorTower.Dev Tools from cn


Telegram Dev Tools
FROM USA