Отклонение больших файлов в мерзавце

Вы также можете попробовать это, если не хотите App.js:

import React from 'react';
import ReactDOM from 'react-dom';

const App = () => {
   return (<h1>HELO WORLD</h1>);
}

ReactDOM.render(<App />, document.getElementById('test'));
7
задан Jon Seigel 19 March 2010 в 19:10
поделиться

3 ответа

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

Очень грубый и готовый пример:

git --no-pager log --pretty=oneline --name-status $2..$3 -- | \
  perl -MGit -lne 'if (/^[0-9a-f]{40}/) { ($rev, $message) = split(/\s+/, $_, 2) }
     else { ($action, $file) = split(/\s+/, $_, 2); next unless $action eq "A"; 
       $filesize = Git::command_oneline("cat-file", "-s", "$rev:$file");
       print "$rev added $file ($filesize bytes)"; die "$file too big" if ($filesize > 1024*1024*1024) }';

(просто идет чтобы показать, все можно сделать с помощью однострочного Perl, хотя это может занять несколько строк;))

Вызывается так же, как вызывается $ GIT_DIR / hooks / update (аргументы - это ref-name, old-rev, new-rev; например, "refs / Heads / master master ~ 2 master") это покажет добавленные файлы и прервёт работу, если добавлен слишком большой.

Обратите внимание, что я бы сказал, что если вы собираетесь полиции такого рода вещи, вам нужен централизованный пункт, в котором это можно сделать.

2
ответ дан 7 December 2019 в 12:24
поделиться

Вы можете распространить ловушку перед фиксацией, которая предотвращает фиксации. В центральных репозиториях у вас может быть ловушка предварительного получения, которая отклоняет большие двоичные объекты, анализируя полученные данные и предотвращая обращение к ним. Данные будут получены, но, поскольку вы отклоняете обновления ссылок, на все новые полученные объекты не будут ссылаться и их можно будет забрать и сбросить с помощью git gc.

Однако у меня нет сценария для вас.

2
ответ дан 7 December 2019 в 12:24
поделиться

Если у вас есть контроль над цепочкой инструментов ваших коммиттеров, может быть несложно изменить git commit, чтобы он выполнял проверку разумности размера файла до «реального» коммита. Поскольку такое изменение в ядре будет обременять всех пользователей git при каждой фиксации, а альтернативная стратегия «изгнать любого, кто захочет внести изменение в 1,5 ГБ» имеет привлекательную простоту, я подозреваю, что такой тест никогда не будет принят в ядре. Я предлагаю вам взвесить бремя поддержки локального форка git - nannygit - с бременем восстановления разбитого git после чрезмерно амбициозного коммита.

Должен признаться, мне любопытно, как возникла фиксация 1,5 ГБ. Речь идет о видеофайлах?

1
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: