Pergunta

Apesar de, principalmente, ser um usuário windows, eu sou um grande fã do rsync.Agora, eu não quero discutir as virtudes do rsync vs qualquer outra ferramenta...não é esse o meu ponto.

A única maneira que eu já encontrei de execução rsync no windows é através de uma versão que é construído para ser executado em cima do Cygwin, e como o Cygwin tem problemas com o Unicode, por isso, não rsync.

Alguém está bastante familiarizado com o funcionamento do rsync para dizer se há qualquer técnica de programação obstáculos para portar o rsync para um nativo do Win32 binary?

Ou é, talvez, que não tem apenas nunca foram o suficiente interesse de usuários do windows para o cuidado a porta sobre isso?

Em parte, eu pergunto porque eu sou estou pensando em tentar assumir a tarefa de iniciar uma porta, mas eu quero ter certeza de que há algo que não estou em falta em termos de por que ela não pode ser possível.

Foi útil?

Solução

A forma com que o windows bloqueia arquivos abertos podem causar um problema, exigindo-lhe ligar para o Volume Shadowcopy Serviço.

Cerca de dois anos atrás, este homem portado o algoritmo para C#.Eu ainda não tomei uma olhada no código (ou fornecido binário), mas pode ser um lugar para começar a procurar ou que alguém tente entrar em contato.
http://www.russiantequila.com/wordpress/?p=8

Outras dicas

(isenção de responsabilidade:eu prometo, eu não o google mim mesmo, mas o google analytics me trouxe até aqui)

eu fui através de portar o rsync para .net (sig11 do link é o meu blog).não existem obstáculos técnicos, apenas práticas.como já foi dito, o código é bastante...denso.difícil de seguir, e completa falta de comentários.eu estou mais do que feliz em fazer o meu trabalho, mas, infelizmente, pois era parte de um esforço comercial, não é significativamente melhor forma.

eu, em um número de ocasiões, brinquei com a idéia de que a engenharia reversa do protocolo e fazer um solo de implementação que o fio compatível com o já existente, mas ...um pouco de líquido de limpeza de trabalhar.eu mesmo comecei um wiki para o efeito, mas...como você pode ver a falta de conteúdo lá, outro item de ter tomado prioridade.se alguém gostaria de trabalhar comigo sobre isso, que pode ser o impulso que eu preciso ir.

o conceito de ferramenta é grande, como é a funcionalidade que ele oferece, no entanto, é bastante limitada fora do *ix espaço, e poderia beneficiar de uma api.

wiki link para a referência:

http://www.russiantequila.com/wiki/index.php?title=Main_Page

Você já viu isso:

http://www.itefix.no/i2/taxonomy/term/39

Eu tenho usado cwrsync sem qualquer problema (e com muito do habitual cygwin miséria), mas eu não tive qualquer necessidade de nomes de arquivo unicode, para que eu não vi o problema.

Eu realmente não sei o porquê de não existir um Win32 nativo porta, mas eu fiz o olhar para a fonte de um tempo de volta porque eu implementado um semelhante delta-cópia do sistema em C#.Como seria de esperar do mundo de brilhante *nix hackers, a fonte é em grande parte único de caracteres de nomes de variáveis e uma total ausência de comentários, o que não é terrível útil e pode ser bastante desanimador para ser porteiros.

Eu estive a avaliação de um esforço para a realização de um win32 porta.Eu não acredito que algo grande iria bloqueá-lo, mas a prova de ambos os rsync lista de discussão e uma outra discussão aponta para uma forte dependência do unix fork() chamadas de sistema.Usando threads aparece o caminho a percorrer para win32.

Threads vs.Garfo discussão

Eu gostaria muito de uma porta de rsync para MS-Windows, que pode ser criado usando o Visual Studio.Eu sou detectados vários erros de protocolo de forma aleatória, um pouco intermitentemente.Eu estou usando o rsync para distribuir sw para uma grade de cerca de 200 máquinas e costuma ter em torno de uma dúzia de falhas.Eu estou usando o GCC 4.4.2 e o mais recente cygwin para construir o rsync v3.0.7.Ele iria me ajudar um monte se eu poderia experimentar com uma versão que não requer o cygwin.Isto é porque as máquinas na grade já tem outro cygwin baseado no aplicativo em execução que é uma versão diferente para o que eu tenho.

Tendo passado algum tempo na rsynv lista de discussão opinião parece ser divididos quanto à causa de erros de protocolo no MS-Windows.Alguns dizem que ele é um bug no rsync onde parou para fazer uma limpeza de encerramento do socket, um bug que foi corrigido um tempo atrás.Outros dizem que é fundamental erro de protocolo na rsync onde o cliente não informar o servidor que ele for concluído, ele simplesmente desliga, causando MW-servidores windows para obter um PRIMEIRO sinal no soquete, algo que não acontece no Unix.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top