epub-translator-studio

03. Praca na 2 komputerach

Model pracy

Najprostszy i najbezpieczniejszy model:

Checklist start/stop

Start sesji

git checkout main
git pull --rebase

Koniec sesji

git add -A
git commit -m "krotki opis"
git push

Co robic przy konflikcie

  1. git status
  2. rozwiaz konflikt lokalnie
  3. git add ...
  4. git rebase --continue albo commit po merge
  5. git push

Co najczesciej psuje synchronizacje

Dobre praktyki

START/STOP scripts (opcjonalnie)

Mozesz zautomatyzowac rytm 2 skryptami:

To ogranicza ryzyko “zapomnialem push”.

Recovery gdy lokalnie jest chaos

Jesli chcesz wyrownac lokalne repo do zdalnego i zachowac kopie zmian:

git stash push -u -m "backup"
git fetch origin
git reset --hard origin/main
git clean -fd

Potem ewentualnie przywroc fragmenty:

git stash list
git stash pop

Recovery po awarii runtime (db/cache/lock)

Szybki playbook, gdy aplikacja padla w trakcie runu:

  1. Zrob kopie stanu:
    $stamp = Get-Date -Format "yyyyMMdd-HHmmss"
    New-Item -ItemType Directory -Force ".\backup\$stamp" | Out-Null
    Copy-Item "project-tkinter\translator_studio.db" ".\backup\$stamp\translator_studio.db" -ErrorAction SilentlyContinue
    Copy-Item "project-tkinter\output\*.jsonl" ".\backup\$stamp\" -ErrorAction SilentlyContinue
    
  2. Wyczysc tylko stale locki:
    Remove-Item "project-tkinter\translator_studio.db.lock" -Force -ErrorAction SilentlyContinue
    cmd /c if exist .git\index.lock del /f /q .git\index.lock
    
  3. Gdy cache jest uszkodzony, odsun go i uruchom ponownie:
    if (Test-Path "project-tkinter\output\cache_book.jsonl") {
      Rename-Item "project-tkinter\output\cache_book.jsonl" "cache_book.broken.jsonl.$stamp"
    }
    
  4. Sprawdz integralnosc DB:
    python -c "import sqlite3; c=sqlite3.connect(r'project-tkinter\\translator_studio.db'); print(c.execute('pragma integrity_check').fetchone()[0]); c.close()"
    
  5. Potwierdz start aplikacji:
    python project-tkinter\scripts\smoke_gui.py