Modificacion simultanea con PHP mediante GIT

Iniciado por larezaka, 7 Junio 2015, 21:07 PM

0 Miembros y 1 Visitante están viendo este tema.

larezaka

Buenas,

Gente les hago una consulta para ver si es posible.

Tengo un codigo PHP en el cual el usuario se Loguea y escribe un documento, luego lo puede guardar en un texto plano.
Queria intentar que al sitio se loguen varios usuarios y puedan modificar el mismo documento, ya sea individual o de forma simultanea y ademas teniendo un control de versiones por si quiero regresarlo atras.

Lo unico que se me ocurrio es usar GIT para tener el control de versiones, pero no se si es posible o no se como hacer para integrar GIT y que lo reflejen los cambios.

Si alguien conoce alguna tecnica, enlace o documentacion que pueda ayudarme a aplicarlo, lo agradeceria.

Saludos.


Regexp

#1
Podría ser con git, pero se me ocurre que podrías tener el problema de que haga el seguimiento de tu propio código.. Imagino que no querrás mostrar el histórico de todos los archivos, sino de ése específicamente.

Código (php) [Seleccionar]

<?php
$usuario 
$_POST['usuario'];
// [...] ~ modifico archivo...
system("git add archivo-de-texto.txt");
system("git commit -m 'modificado por $usuario'");
// [...]
?>



:rolleyes:

Edit: con la función exec(string $s) obtendrás la salida del comando $s, para luego (de alguna manera), interpretarlo y mostrarlo como código HTML hacia el navegador.

Saludos
No todo el que deambula está perdido

larezaka

Muchas Gracias.

De hecho estaba creando un modulo para que el dueño del documento elija que usuarios pueden modificar ese documento.
Ahi queria ver si ese usuario con permisos podia continua editando el documento donde quedo la ultima vez. Pense por un momento en generar una rama para que quede salvado el documento anterior por si este se manda alguna cagada en la edicion, con eso podria volver atras lo ultimo que se hizo.

Como es texto plano, puedo darle un id para el que sea el original y otro para ver cual es el que se genero ultimo.

Con esas lineas me has dado algunas ideas, ahora tengo que ver como loguear git en segundo plano para que los usuarios no lo vean.

Si tiene ideas tiren que puede ser util para proyectos futuros de control de versiones.

Saludos.

Regexp

Cita de: larezaka en  9 Junio 2015, 01:21 AM
Muchas Gracias.

De hecho estaba creando un modulo para que el dueño del documento elija que usuarios pueden modificar ese documento.
Ahi queria ver si ese usuario con permisos podia continua editando el documento donde quedo la ultima vez. Pense por un momento en generar una rama para que quede salvado el documento anterior por si este se manda alguna cagada en la edicion, con eso podria volver atras lo ultimo que se hizo.

Como es texto plano, puedo darle un id para el que sea el original y otro para ver cual es el que se genero ultimo.

Con esas lineas me has dado algunas ideas, ahora tengo que ver como loguear git en segundo plano para que los usuarios no lo vean.

Si tiene ideas tiren que puede ser util para proyectos futuros de control de versiones.

Saludos.

Quizás en lugar de crear dos archivos diferentes, te sirva crear un branch por usuario autorizado y luego el dueño tenga la opción de hacer merge cuando lo decida. Una característica que quizá se te pueda hacer interesante es la siguiente situación:

El usuario A, comienza a editar su branch desde el master el día lunes. Y llega el usuario B de vacaciones el miercoles y quiere comenzar a editar, su branch estará actualizada para el master y no con la del A.

Sería interesante que se informara al usuario B de los cambios que se ha hecho el usuario A para darle la opcion de actualizar su branch a los cambios que ha hecho él.

Al final de la semana, el dueño hace merge.

No se si te sea de ayuda también :rolleyes:, sino puedes hacer en una base de datos por tablas, pero entonces se complicaría el asunto conforme la cantidad de documentos crezca.

Saludos
No todo el que deambula está perdido