¿Cómo puedo ver los files modificados en una versión capistrano?

Me gustaría comprobar si alguien modificó mis files (compañero de trabajo -> revisión o pirata informático -> piratear) antes de lanzar una nueva versión. ¿Es posible ver files modificados a través git status en una versión de Capistrano?

 $ ls -l total 21692 lrwxrwxrwx 1 user www-data 55 Dec 14 14:31 current -> /path/to/my/releases/20161214132953 drwxr-xr-x 7 user www-data 4096 Dec 14 14:31 releases drwxr-xr-x 7 user www-data 4096 Aug 18 14:05 repo -rw-r--r-- 1 user www-data 121235 Dec 14 14:31 revisions.log drwxr-xr-x 5 user www-data 4096 Dec 8 2014 shanetworking $ cd current $ git status fatal: Not a git repository (or any of the parent directories): .git $ cd ../repo $ git status fatal: This operation must be run in a work tree 

Hay una manera de hacerlo, aunque no es obvio.

Primero, use tail revisions.log para encontrar el SHA de compromiso de Git que se usó para el lanzamiento.

 $ tail -n1 revisions.log Branch master (at 66ba18ca4f689a7e9fdc9a45ba3c952785620157) deployed as release 20161214132953 by mbrictson 

A continuación, vaya al directory repo y use el command git archive para crear una instantánea prístina del repository que existía en esa confirmación.

 $ mkdir -p /tmp/pristine-release $ git archive 66ba18ca4 | tar -x -f - -C /tmp/pristine-release 

Ahora puedes usar diff para ver las diferencias:

 $ diff -r /tmp/pristine-release /path/to/releases/20161214132953 

Si desea ignorar files a través de .gitignore , puede usar el siguiente command:

 rsync \ -vanc\ --no-links \ --no-group \ --no-owner \ --no-perms \ --no-times \ --delete \ --filter="dir-merge,- .gitignore" \ /path/to/current/ \ /tmp/pristine-release \ | head -n -3 \ | tail -n +2 \ | grep -v 'skipping non-regular file' 

--filter="dir-merge,- .gitignore" lee y usa gitignore
| head -n -3 | head -n -3 elimina el pie de página de rsync
| tail -n +2 | tail -n +2 elimina el encabezado rsync
| grep -v 'skipping non-regular file' | grep -v 'skipping non-regular file' elimina los files omitidos de la list