Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RepoSync
Search
cateiru
July 09, 2021
Education
39
0
Share
RepoSync
https://github.com/yuto51942/netpro-project
cateiru
July 09, 2021
More Decks by cateiru
See All by cateiru
社内の開発便利ツールを作った話 / サブカル業界Developers 勉強会Vol.6
cateiru
0
560
QUICについて調べた
cateiru
0
130
Other Decks in Education
See All in Education
リモートリポジトリの操作 / 02-c-remote
kaityo256
PRO
0
130
多様なメンター、多様な基準
yasulab
6
20k
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
0
240
Leveraging LLMs for student feedback in introductory data science courses (Stats Up AI)
minecr
1
250
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
signer
PRO
0
2.6k
事業紹介資料(トレーナー養成講座)
kentaro1981
0
110
Sponsorship 2026 | VizChitra
vizchitra
2
160
計算物理におけるGitの使い方 / 01-c-compphys
kaityo256
PRO
2
530
CoderDojoへようこそ ニンジャ&保護者向け (CoderDojo Guidance for Ninjas&Parents)
coderdojokodaira
1
150
Information Architectures - Lecture 2 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
1.9k
地区危機管理委員会 出前セミナー「ロータリーにおける危機管理」:膳所 和彦 氏(国際ロータリー第2720地区 パストガバナー・日田ロータリークラブ・医療法人恒心会ぜぜ医院 理事長):2720 Japan O.K. ロータリーEクラブ2026年2月16日卓話
2720japanoke
1
620
OSINT入門-CTF for GIRLS_SECCON14電脳会議
nomizone
1
1.2k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Abbi's Birthday
coloredviolet
2
6.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
320
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
Raft: Consensus for Rubyists
vanstee
141
7.4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
260
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Code Review Best Practice
trishagee
74
20k
Agile that works and the tools we love
rasmusluckow
331
21k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
120
Transcript
Repo Sync
どういうもの? • 複数クライアントとファイルをリアルタイム同期するやつ • Gitの仕組みを利用することで変更を戻すことができる • ソケット通信を使用することでプライベートネットワーク間で通信 • 使いやすいCLI •
Python & Rust製 ↓ HackMDやGoogle DocのCLI、ソケット通信ver.
使用言語 • 更新確認、履歴管理 ◦ Rust • 通信、cli ◦ Python
動作説明1 依存関係のインストールとビルド • ./build.shでRustのビルド(cargoが必要) • pipenv installでPythonの依存関係インストール(pipenvが必要)
動作説明2 サーバーの起動 • pipenv shellでPythonの仮想環境へ • repo-server --port=8080 -a localhost
でも可
動作説明3 クライアントの起動 • repo-syncで、ファイルパス、ポート、サーバーのアドレスを入力
動作説明4 変更履歴の表示 • repo-git showで履歴表示 • --pager false とすることでpager無しになる
動作説明5 Revert • repo-git applyで履歴のハッシュ値と適用するファイルパスを指定
動作例(うまく動かなかったとき用)
アピールポイント • コア部分(ファイル更新確認、履歴保存)をRustで書く →パフォーマンス向上 • Gitの仕組みを参考に更新履歴を保存する →間違えて保存したときなどに任意の場所に戻せる
シーケンス図 サーバー側
シーケンス図 クライアント側
開発形態、使用ツール • GitHub ◦ CI/CD: GitHub actions ◦ GitHub flow
• Rust ◦ cargo ◦ PyO3 • Python ◦ tox ◦ pipenv ◦ flake8 ◦ mypy ◦ pylint
将来展望 • 同時に保存すると、コンフリクトが起きる→キューに格納 • PythonとRustを使用しておりPythonを使う意味がほぼないためすべてRustで再実 装 • 履歴表示時にPagerを使用しているが、画面にすべて表示されない出力の場合に qを押したときにエラーが起きる問題の修正 •
pypiにデプロイしたい
yuto51942/netpro-project https://github.com/yuto51942/netpro-project