Нажмите git-репозиторий на gitblit [duplicate]

У меня была аналогичная проблема, когда у меня была главная страница:

@section Scripts {
<script>
    $(document).ready(function () {
        ...
    });
</script>
}

...

@Html.Partial("_Charts", Model)

, но частичный вид зависел от некоторого JavaScript в разделе «Сценарии». Я решил это, закодировав частичное представление как JSON, загрузив его в переменную JavaScript, а затем используя это, чтобы заполнить div, так:

@{
    var partial = Html.Raw(Json.Encode(new { html = Html.Partial("_Charts", Model).ToString() }));
}

@section Scripts {
<script>
    $(document).ready(function () {
        ...
        var partial = @partial;
        $('#partial').html(partial.html);
    });
</script>
}

<div id="partial"></div>
1
задан yash 14 September 2016 в 10:28
поделиться

2 ответа

Итак, я понял, в чем проблема. Два года назад Git repo был добавлен в каталог и зарегистрирован в TFS. Это было снова удалено и зарегистрировано. Похоже, что, поскольку в моем репозитории Git есть история этого, он выкинет ошибку из-за причин, описанных torek.

Мое решение состояло в том, чтобы усечь историю до даты после этой регистрации, и все это толкнуло после этого.

Спасибо за помощь

0
ответ дан Matthew Padden 17 August 2018 в 16:31
поделиться

По некоторым соображениям безопасности Git отказывается хранить любые файлы в любом каталоге с именем .git. (Если Git сделал разрешить файлы .git, файл с именем .git/hooks/commit в репозитории Git станет вашим крюком фиксации, а следующая команда, которую вы выполняете, будет запускать любые произвольные команды, которые атакующий помещает в этот файл . Есть проверка, чтобы избежать этого, но оказалось, что он был слегка сломан.) Для конкретных по конкретным конкретным причинам эта особая проблема безопасности проявляется как плохой «древовидный объект», который содержит «.git», который настраивается с помощью hasDotGit .1

Однако не каждая версия Git имеет все испытания, и, поскольку на протяжении многих лет были обнаружены новые проблемы, новые версии Git приобрели новые защиты от этих старых проблем. Если у вас установлена ​​более старая версия Git, ваш Git может разрешить сохранение небезопасных и / или неправильных элементов, таких как этот плохой объект tree. Обновление до более новой версии Git или доступ к более новой версии Git на каком-то сервере иногда будет диагностировать или даже начать отказываться от работы с плохим репозиторием.

Начиная с версии Git 2.6 , вы можете настроить Git для приема определенных элементов плохого репозитория , даже если вы включили проверку вообще. (До 2.6 вы должны просто полностью отключить проверку.) Вы можете игнорировать некоторые проблемы, понижать некоторые проблемы до уровня предупреждения, обновлять предупреждения до ошибок и / или игнорировать некоторые конкретные объекты по своим идентификаторам хеширования. Эта конфигурация должна быть выполнена на сервере ; независимо от того, как, и как, это можно сделать на серверах, которые вы используете, я не знаю. См. Также этот форум GitLab, размещающий , который предполагает, что что-то или кто-то отключил это и продолжал с течением времени.

Для справки, Git версии 2.2.1, 2.1.4, 2.0.5, 1.9.5 и 1.8.5 были точками, в которых Git начал проверять .git, записанные в NTFS и MacOS (HFS), конкретными способами и с нечувствительностью к регистру (до этого .Git или .gIt или .GIT, например, были приняты как ОК, которые обычно находятся в системах Linux / Unix). Эти проверки находятся в fsck.c и могут быть вызваны во всех операциях загрузки, загрузки и индексирования пакетов. См. Документацию git config, ища каждый экземпляр fsck, так как для включения или отключения проверки полностью существует множество настроек или изменение серьезности проблем.

Чтобы уменьшить степень серьезности hasDotGit ] до warning, вы бы сделали:

$ git config fsck.hasDotGit warning

в этом конкретном репозитории.

Помимо реконфигурирования серверов вы также можете переписать историю плохого репозитория (используя git filter-branch), чтобы превратить его в хороший репозиторий. Если вы это сделаете, вы по существу заставите всех своих пользователей повторно клонировать.


1 Точная форма текстового сообщения претерпевает интернационализацию, но по умолчанию это contains '.git', а строка конфигурации hasDotGit.

Строки конфигурации не очевидны и, похоже, не документированы должным образом. Они формируются путем взятия перечисляемых имен в источнике fsck.c и удаления всех подчеркиваний и перевода в нижний регистр, а затем в верхний верхний регистр, где бы вы ни хотели создавать имена camelCase. (Сравнение строк git config выполняется с учетом нечувствительности к регистру, поэтому вы можете настроить fsck.hasdotgit или fsck.HASDOTGIT, если хотите. CamelCase - это просто соглашение.)

3
ответ дан torek 17 August 2018 в 16:31
поделиться
Другие вопросы по тегам:

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