-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Git集成(双向备份) #9
Comments
Summary of the Current InvestigationsGit BridgeIn Overleaf, the Git bridge and GitHub sync are not entirely the same functions. The Git bridge allows pushing and pulling from The previously mentioned implementation by USTC only provides a Git bridge. Their
Overleaf's own implementation of the Git bridge is also tricky: overleaf#782 (comment) Third Party Data Store (TPDS)To circumvent the complexity of the Git bridge, we can refer to the implementation of Dropbox synchronization. In Overleaf's codebase, services like Dropbox are referred to as third-party data stores. We can ignore the fact that the external Gitea server is a Git server and treat it simply as a regular file service:
This way, we can heavily reuse the logic of Dropbox synchronization in Overleaf. Good news is that the open-source version has not completely removed the relevant logic for Dropbox, which significantly reduces the workload. The logic for synchronizing changes from Overleaf to external storage is roughly as follows: graph LR
A[Frontend] -->|Document modification| B[Web Service]
B -->|"/enqueue/web_to_tpds_http_requests"| C[TPDS Service]
C -->|"Some logic"| D[External data store]
From modifying a document in the frontend to the web service issuing a The logic for synchronizing changes from external storage to Overleaf is roughly as follows: graph LR
A[External data store] -->|webhook| B[Web Service]
The main logic is found in |
Reference:
This may not be portable to other potential users of this instance, i.e., to integrate other git implementations, anyhow, this is yet to be discussed. |
Even if we choose to use Git bridge-based solutions, we still have to write different logics to support different Git hosting platforms, because they can have different web hooks, authentication methods, etc. |
No description provided.
The text was updated successfully, but these errors were encountered: