-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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. |
帅的啊 居然真的还有这么多人在为了实现git bridge努力( 从overleaf issue过来的hhh |
From my perspective, git bridge should be considered as a 'version control tool', rather than a 'history recorder'. Users shall trigger commit or tag actions by hand. In such cases, the frequency of commits will be reduced so we can implement them using less sophisticated methods. I will propose some use cases for the git bridge here:
Note: Real-time, line-based collaborative editing should always be confined to the platform itself, not handled through the git bridge For implementation simplicity, we propose the following approach:
The user experience and workflow design require further discussion, particularly regarding the handling of rebasing operations and conflict resolution, which present significant challenges. |
No description provided.
The text was updated successfully, but these errors were encountered: