Правильный путь теперь следующий:
git filter-branch --prune-empty --subdirectory-filter FOLDER_NAME [first_branch] [another_branch]
GitHub теперь даже имеет небольшую статью о таких случаях.
Но не забудьте сначала клонировать исходное хранилище в отдельный каталог (так как это приведет к удалению всех файлов и других каталогов, и вам, вероятно, потребуется с ними работать).
Таким образом, ваш алгоритм должен быть:
git filter-branch
, оставляя только файлы в каком-то подкаталоге, нажать на новый удаленный Литеральные нулевые
значения обрабатываются иначе, чем параметры, которые могут быть нулевыми. Когда вы явно проверяете null
, сгенерированный SQL будет использовать оператор IS NULL
, но когда вы используете параметр, он будет использовать стандартный оператор =
, что означает, что ни одна строка не будет соответствовать, потому что в SQL null
не равно ничему. Это одно из наиболее раздражающих семантических несоответствий .NET / SQL в LINQ to SQL. Чтобы обойти это, вы можете использовать предложение вроде:
where doc.ParentID == parentID || (doc.ParentID == null && parentID == null)
Вы также можете использовать что-то вроде ...
from doc in dbContext.Documents
where doc.IsParentIDNull()
select doc
У меня сработало! надеюсь, это сработает для вас!