Skip to content
Extraits de code Groupes Projets
Valider fa455d64 rédigé par Lionel Dricot's avatar Lionel Dricot
Parcourir les fichiers

Merge branch 'feat/report-nf' into 'master'

Add report for Nicolas Fischer (rsync)

See merge request ldricot/lingi2401!351
parents ca4b2325 51467960
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# Contributing to an open source project: rsync
| **Author** | Nicolas Fischer |
| ----------------------- | --------------------------------------------------------- |
| **Date** | 2024-10-28 |
| **NOMA** | 6529-20-00 |
| **Academic Year** | 2024-2025 |
| **Open Source Project** | [rsync](https://github.com/RsyncProject/rsync) |
| **Pull request made** | [pr#656](https://github.com/RsyncProject/rsync/pull/656) |
| **License** | [GPLv3](https://github.com/RsyncProject/rsync) |
## Project: `rsync`
`rsync` is a widely used open-source utility for fast file transfer and
synchronization. It can transfer files from one directory to another, whether on the
same disk or to another network computer, either using a rsync daemon or via a remote
shell like SSH. Known for its robustness and efficient file handling, `rsync` is
particularly effective for large data transfers. By comparing files and transferring
only the differences, it minimizes the amount of data sent over the network. This makes
rsync a go-to solution for local and remote backups, as well as for file and directory
mirroring and synchronization.
### About the project
`rsync` is an old software, created by two researchers in 1996. So, many things take
place via a mailing list, which looks more active than Github.
Github reports 46 contributors, 337 forks and 2.9k stars.
Releases are managed by one person, Wayne Davison. He is supported by another,
Andrew Tridgell.
## My contribution
I modified the source code to include `--` (the CLI option parse terminator) between
the remote shell command and before any `rsync` commands, changing the generated
command from:
```sh
<rsh> [opts] <destination> rsync [opts] src dst
```
to:
```sh
<rsh> [opts] <destination> -- rsync [opts] src dst
```
Effectively, this means that the remote shell will stop processing anything after `--`
and treat the rest as the command to send over the remote shell.
## Motivation
I chose to contribute to `rsync` because it was missing a feature I would like to have.
As a tool I use regularly and extensively, I strive to ensure it is compatible with
modern standards and modern remote shells.
## Challenges
As with any change in a world-spanning software, modifications should be as backwards
compatible as possible to ensure a smooth transition. I could put this issue to rest
as this convention was created by a very old C library, `getopts()`.
The current challenge is to get the attention of the maintainers.
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter