Git - remove another usage of iconv (#243902)

This commit is contained in:
Ladislau Szomoru 2025-03-18 21:35:33 +01:00 committed by GitHub
parent 6191768413
commit 46a9b7e644
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View File

@ -10,7 +10,6 @@ import * as cp from 'child_process';
import { fileURLToPath } from 'url';
import which from 'which';
import { EventEmitter } from 'events';
import * as iconv from '@vscode/iconv-lite-umd';
import * as filetype from 'file-type';
import { assign, groupBy, IDisposable, toDisposable, dispose, mkdirp, readBytes, detectUnicodeEncoding, Encoding, onceEvent, splitInChunks, Limiter, Versions, isWindows, pathEquals, isMacintosh, isDescendant, relativePath } from './util';
import { CancellationError, CancellationToken, ConfigurationChangeEvent, LogOutputChannel, Progress, Uri, workspace } from 'vscode';
@ -1739,10 +1738,10 @@ export class Repository {
await this.exec(args);
}
async stage(path: string, data: string, encoding: string): Promise<void> {
async stage(path: string, data: Uint8Array): Promise<void> {
const relativePath = sanitizeRelativePath(this.repositoryRoot, path);
const child = this.stream(['hash-object', '--stdin', '-w', '--path', relativePath], { stdio: [null, null, null] });
child.stdin!.end(iconv.encode(data, encoding));
child.stdin!.end(data);
const { exitCode, stdout } = await exec(child);
const hash = stdout.toString('utf8');

View File

@ -1222,7 +1222,8 @@ export class Repository implements Disposable {
async stage(resource: Uri, contents: string, encoding: string): Promise<void> {
await this.run(Operation.Stage, async () => {
await this.repository.stage(resource.fsPath, contents, encoding);
const data = await workspace.encode(contents, resource, { encoding });
await this.repository.stage(resource.fsPath, data);
this._onDidChangeOriginalResource.fire(resource);
this.closeDiffEditors([], [...resource.fsPath]);