私は数日間働くパイプラインを持っていて、非常に遅い速度でいくつかの科学的結果を書きました(1時間に1回約20行)。ほとんどの場合、何も書かれていません。この文書はによって書かれましたtee
。
私はプロセスを中断することなく毎日新しい結果を得たいと思います。パイプラインを中断したくありません。
このファイルで個人リポジトリを作成してファイル(現在作成中)を送信して、携帯電話や他のデバイスで新しい結果を表示できますか?
コミットしてプッシュすると、どのようにパイプラインが破損しますか?
編集する:新しい結果を確認するために私が行うことができますか(携帯電話で)送信できるrsync
他のアイデアがありますか?scp
答え1
Gitはファイルを読む以外は何もしません。これによりパイプが損傷することはありません。読み取り専用ディレクトリ用のgitリポジトリを作成し、読み取り専用ファイルをコミットすることもできます。作業ディレクトリを確認または変更する作業を行わず、作業ディレクトリを確認または変更するための作業のみを実行せずに追加およびコミットのみを実行する限り、Gitで書き込み操作を実行する必要がある唯一の場所はGitディレクトリ内です(.git
デフォルトでは他の場所に置くことができます)git --git-dir=…
。
本当に心配な場合は、Gitのソースコードを見るとこれを確認できます。あるいは、gitがファイルをコミットする方法を見てみましょう...
strace -o commit.strace -f git commit -m wibble foo
見て電話するだけlstat
です。open(…, O_RDONLY)
foo
失敗できるのはgit add
行動だ。 Gitがファイルを読み込んでいる間にプロセスがファイルに書き込むと、Gitはファイルが変更されたことに気付いて放棄できます。いずれにせよ、これはソースファイルには影響しません。git add myfile
失敗した場合は何もしないでください。ただし、Gitに何らかのエラーがあり、正しく修復できない場合でも、Gitインデックスにのみ影響し、ファイルには影響しません。 Gitが処理したデータファイルは読み取り専用で開きます。エラーメッセージは次のとおりです。「不安定なオブジェクトソースデータが混乱している」しかし、まだ確認していません。最初にトリガーされるサイズについて他の確認があるかもしれません。データレートを考慮してgit add
失敗した場合は、しばらく停止してからやり直してください。