日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

アーカイブ

2017年06月 のアーカイブ

fossilからGitに変換

  • Gitからfossilに変換する
    git fast-export --all > ファイル名
    fossil import --git new-repo.fossil ファイル名
    または
    git fast-export --all | fossil import --git new-repo.fossil
  • fossilからgitに変換する
    mkdir example
    cd example
    git init
    fossil export --git -R new-repo.fossil | git fast-import

リポジトリを圧縮する
  • fossil
    sqlite3 リポジトリファイル vacuum
  • git
    git fsck --full
    git reflog expire --expire=now --all
    git gc --prune=now

    # 完全圧縮(遅い)
    # git gc --prune=now --aggressive
とあるオープンソースのプロジェクトを素材に試しました。
圧縮前

圧縮後
--aggressive

備考
git 80MB

7MB

fossil 約20MB 約20MB 無圧縮データ
/stat
530MBと表示される

取り込み直後は、fossilのほうが小さいのですが、gitは、--aggressiveするとfossilの半分になりました

gitとfossilでは、ブランチの性質が違うのでそのまま、fossilに取り込めない場合があります。
  • 同一コミットに複数のブランチがある場合
  • タグしかない場合

ブランチの性質
fossil git
開始情報 ある ない
ブランチ付け コミットが発生 コミットは発生しない
完全抹消 不可能(仕様) 可能


gitから取り込む際の注意
  • コミット作者名の置換ルールがありません。
    取り込む前に整理したほうがいいです
  • 同一コミットにブランチが2個以上ある場合対応していません
  • 取り込んだ後にgitに書き出しても元のgitリポジトリと同じ構成にはなりません。
  • 差分圧縮に対応していないので、大きいファイルかつ細かい修正が多い場合は向いていません。
  • 履歴の削除に対応していないので、不要なブランチを切り捨てたい場合は向いていません。

» 続きを読む

仮引数リスト内で が宣言されています

C言語 なぜコンパイルが落ちるか理由がわからない。
そんな時はまずチェック
  • 関数名の長さをチェック31文字まで
    ANSI の規定により、識別子の名前では 31 個まで使用できます。
    超えるとこのエラーが表示され 一言も関数名が長すぎますとは表示されません。
    こんなエラーには要注意
    警告: そのスコープはこの定義または宣言のみです。これは多分希望したものではないでしょう
    エラー: ‘関数名’ と型が競合しています
    int 数名(
    ^
  • 関数名が予約語でないかチェックする

普通にわかりやすい名前付けると31文字なんか余裕で超えますね。
31文字チェッカー<br />
1 2 3
1234567890123456789012345678901
fossil git import すると欠落がある

執筆:2017.06.02
編集:2022.09.17


[2017.6] 1年近くたっても修正されていないようなのでメモ
[2022.9] version 2.19でも修正されていない

fossil bug : gitからのインポートで最初と最後のコミットに付随するタグが欠落する。

再現コード
# 作業フォルダを作成し移動
mkdir tag-bug
cd tag-bug

# gitの初期設定をする
git init
git config --local user.email test@test
git config --local user.name test

# gitにテストコミットをする(1-3)
git commit -m "1" --allow-empty
git tag tag1

git commit -m "2" --allow-empty
git tag tag2

git commit -m "3" --allow-empty
git tag tag3

# tag is : tag1, tag2, tag3

# gitの内容をダンプして、fossilにインポートする
git fast-export --all > ./dump.txt

fossil import --git test.fossil ./dump.txt

# fossilのタグのリストを確認する
fossil tag list -R ./test.fossil

# Actual Result
tag2, trunk
Missing of tag1, and tag3

# Expected Result
tag1, tag2, tag3, trunk

# 最新版は、masterが追加される

» 続きを読む



PR

[PR]