livrare.ps1: fisierul de mesaj fara BOM
Out-File -Encoding utf8 in PS 5.1 scrie BOM, care ajungea ca prim caracter in mesajul de commit (ex. un mesaj despre "sync SVN"). Se scrie cu [IO.File]::WriteAllText si UTF8Encoding $false. Nota in scripturi-uzuale.md: mesajele catre git/svn din PowerShell trec prin fisier, UTF-8 fara BOM, LF. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014sNn6dmAimtyXkDU4frJrh
This commit is contained in:
@@ -22,3 +22,11 @@ refacut manual la fiecare interogare) si un wrapper care ruleaza `diag_spatiu.ps
|
||||
clientii, cu un rezumat pe un rand per server.
|
||||
|
||||
Fluxul SVN ↔ git din spatele lui `roa_sync`: `fluxul_svn_git.md`.
|
||||
|
||||
**Mesaje de commit din PowerShell catre `git`/`svn` (exe native): niciodata `-m $mesaj`.**
|
||||
PowerShell nu escapeaza ghilimele/backtick/`$` cand paseaza argumente catre un exe nativ - un
|
||||
mesaj cu `"..."` sparge comanda. Solutie: scrie mesajul intr-un fisier temporar si foloseste
|
||||
`git commit -F <fisier>` / `svn commit -F <fisier>`, cu textul **UTF-8 fara BOM**
|
||||
(`[IO.File]::WriteAllText($cale, $mesaj, (New-Object Text.UTF8Encoding $false))` - `Out-File
|
||||
-Encoding utf8` in PS 5.1 scrie BOM, care ajunge ca prim caracter in mesajul de commit) si
|
||||
**LF, nu CRLF** (`svn commit -F` refuza fisiere cu linii mixte CRLF/LF: `E135000`).
|
||||
|
||||
@@ -386,7 +386,9 @@ try {
|
||||
$mesajDir = Join-Path ([System.IO.Path]::GetTempPath()) ('livrare_' + [guid]::NewGuid().ToString('N'))
|
||||
New-Item -ItemType Directory -Path $mesajDir | Out-Null
|
||||
$mesajFile = Join-Path $mesajDir 'mesaj_commit.txt'
|
||||
$Mesaj | Out-File -FilePath $mesajFile -Encoding utf8
|
||||
# UTF8Encoding($false): fara BOM - Out-File -Encoding utf8 scrie BOM in PS 5.1, iar git
|
||||
# il baga in mesajul de commit ca prim caracter (U+FEFF) daca-l citim cu -F.
|
||||
[System.IO.File]::WriteAllText($mesajFile, $Mesaj, (New-Object System.Text.UTF8Encoding $false))
|
||||
|
||||
$exitCode += (Comite-Si-Impinge $ProjectRoot 'proiect' $FaraPush $mesajFile)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user