Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

289
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda