Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

290
Visualizações
nodegit: cómo saber si una confirmación está vacía (para evitar enviar confirmaciones vacías)

Estoy usando nodegit y no puedo averiguar cómo detectar si ha habido cambios para confirmar.

Actualmente, me comprometo cuando ocurre un evento externo, pero no sé si esto causará una diferencia real en los archivos. No verifico si la confirmación está vacía antes de presionar, lo que me llevó a terminar con muchas confirmaciones vacías, me gustaría evitar eso.

Cuando lo hago manualmente, generalmente ejecuto un git status para verificar si había cambios para confirmar, estaba pensando en hacer algo similar aquí, pero no puedo entender cómo. ( aquí está la documentación )

 console.log('committing...'); const commitResult = await commitFile(`schema.json`, schemaAsString, `${appName} (${appId})`); const statuses = await repo.getStatus(); console.log('getStatus status', statuses); console.log('getStatus status', statuses[0].status()); console.log('getStatus isModified', statuses[0].isModified()); console.log('getStatus path', statuses[0].path()); console.log('getStatus statusBit', statuses[0].statusBit()); console.log('pushing...'); const pushResult = await push(repo); console.log('pushResult', pushResult);
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

En general: desde la línea de comandos, otra forma de ver si hay alguna diferencia es ejecutar git diff HEAD . La diferencia está vacía si no hay diferencias.

Parece que solo le importa schema.json en su secuencia de comandos: desde la línea de comando, sería git diff HEAD -- schema.json .

Si logra generar un comando similar en nodegit (obtenga la diferencia para schema.json entre HEAD y el árbol de trabajo), puede usarlo como condición al comienzo de su secuencia de comandos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Lo descubrí probando cosas un poco al azar.

Utilizo la suma de comprobación del índice y la comparo antes y después de confirmar.

Si la confirmación está vacía, la suma de comprobación no cambia. Si la confirmación no está vacía, la suma de comprobación cambia.

Basado en eso, es fácil escribir una condición simple para realizar el empuje o no.

 const repo = await clone(repositoryLocalPath); console.log('repo', repo); const indexBeforeCommit: Index = await repo.refreshIndex(); const indexBeforeCommitChecksum = indexBeforeCommit.checksum().tostrS(); console.log('indexBeforeCommit checksum', indexBeforeCommitChecksum); console.log('committing...'); const commitId = await commitFile(`schema.json`, schemaAsString, `Airtable - ${appName} (${appId})`); const indexAfterCommit: Index = await repo.refreshIndex(); const indexAfterCommitChecksum = indexAfterCommit.checksum().tostrS(); console.log('indexAfterCommit checksum', indexAfterCommitChecksum); if (indexBeforeCommitChecksum !== indexAfterCommitChecksum) { console.log('pushing...'); const pushResult = await push(repo); console.log('pushResult', pushResult); } else { console.log('no changes to push'); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda