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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
cateiru
July 09, 2021
Education
0
39
RepoSync
https://github.com/yuto51942/netpro-project
cateiru
July 09, 2021
Tweet
Share
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
次期バージョン 14.5.1 Early Access Program が始まりました
harunakano
1
120
LotusScript でエージェント情報を出力してみた
harunakano
0
140
Leveraging LLMs for student feedback in introductory data science courses (Stats Up AI)
minecr
1
230
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
0
340
計算物理におけるGitの使い方 / 01-c-compphys
kaityo256
PRO
2
470
高校数学B「統計的な推測」 分野の問題と課題
shimizudan
1
110
滑空スポーツ講習会2025(実技講習)EMFT講習 実施要領/JSA EMFT 2025 procedure
jsaseminar
0
140
2025-12-11 nakanoshima.dev LT
takesection
0
130
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
690
ブランチ操作 / 02-a-branch
kaityo256
PRO
0
190
Use Cases and Course Review - Lecture 8 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.4k
東大1年生にJulia教えてみた
matsui_528
7
12k
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Docker and Python
trallard
47
3.8k
Writing Fast Ruby
sferik
630
63k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
380
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
78
Practical Orchestrator
shlominoach
191
11k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Speed Design
sergeychernyshev
33
1.6k
A Tale of Four Properties
chriscoyier
163
24k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
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