TimaxLacs / deep-files-sync

1 stars 1 forks source link

2 версия - двухстороняя синхронизация #3

Open TimaxLacs opened 6 months ago

TimaxLacs commented 6 months ago

Перенос связей в древовидную структуру типа папок будет осуществляться представлением одной любой связи в виде:

  1. linkA - папка связиА(может быть другое название. как лучше назвать эту папку? названием связи или ее идентефикатором?)
  2. link.json - храняться параметры связи(какую именно информацию хранить в этой папке?)
  3. value(папка) - храняться все связанные с этой связью связи(стоит ли тут делать под папки в виде разных тревелеров? Типа from, to, in, out)

насчёт названия еще - если папка связи будет имя названия связи, то тогда могут быть повторения

image

TimaxLacs commented 6 months ago

Гипотезы: 1) название - можно в название папки связи соеденить идентефикатор и имя связи 2) в link.json будет храниться вся информация внутри связи. Также можно там хранить с чем и как связана эта связь 3) или же это можно сделать через папки, в которых будет значения тех же promiseThree и тому подобных

Konard commented 6 months ago

@TimaxLacs на картинке отмечено AF --- value, вероятно имелось ввиду что value это просто файл соответствующий AsyncFile связи или файлу в JSON формате для Object, файлу в текстовом формате для Number и String.

Я так же внутри link.json (который будет совместим с deep.json) предлагаю сделать ссылку через file://./value на этот файл в поле valueUri.

Konard commented 5 months ago
konard@konard-MS-7982:~/Desktop/files-sync-test$ mkdir @deep-foundation/core
mkdir: cannot create directory ‘@deep-foundation/core’: No such file or directory
konard@konard-MS-7982:~/Desktop/files-sync-test$ mkdir -p @deep-foundation/core
konard@konard-MS-7982:~/Desktop/files-sync-test$ tree
.
└── @deep-foundation
    └── core

2 directories, 0 files
konard@konard-MS-7982:~/Desktop/files-sync-test$ 

@ivansglazunov приемлемо ли такое поведение для названий пакетов? Или вообще всех имён, которые содержат /?

Konard commented 5 months ago
konard@konard-MS-7982:~/Desktop/files-sync-test$ cd @deep-foundation/core
konard@konard-MS-7982:~/Desktop/files-sync-test/@deep-foundation/core$ tee link.json << JSON
{
    "id": "@deep-foundation/core",
    "type": "@deep-foundation/core/Package",
}
JSON
{
    "id": "@deep-foundation/core",
    "type": "@deep-foundation/core/Package",
}
konard@konard-MS-7982:~/Desktop/files-sync-test/@deep-foundation/core$ echo "@deep-foundation/core" >> value.txt
konard@konard-MS-7982:~/Desktop/files-sync-test/@deep-foundation/core$ cd ../..
konard@konard-MS-7982:~/Desktop/files-sync-test$ tree
.
└── @deep-foundation
    └── core
        ├── link.json
        └── value.txt

2 directories, 2 files
konard@konard-MS-7982:~/Desktop/files-sync-test$ cat @deep-foundation/core/link.json
{
    "id": "@deep-foundation/core",
    "type": "@deep-foundation/core/Package",
}
konard@konard-MS-7982:~/Desktop/files-sync-test$ cat @deep-foundation/core/value.txt
@deep-foundation/core

@TimaxLacs @ivansglazunov что думаете о таком формате файла link.json и value.txt для String значений?

TimaxLacs commented 5 months ago

@TimaxLacs на картинке отмечено AF --- value, вероятно имелось ввиду что value это просто файл соответствующий AsyncFile связи или файлу в JSON формате для Object, файлу в текстовом формате для Number и String.

Я так же внутри link.json (который будет совместим с deep.json) предлагаю сделать ссылку через file://./value на этот файл в поле valueUri.

  1. а что тогда должно быть в файле AsyncFile?
  2. с совместимостью полностью согласен. ты предлагаешь его преобразовывать или часть значений от deep.json будет не тронута, а снизу или сверху будет какое-то ее преобразование, что при обратном перемещении в дип будет удаляться?
TimaxLacs commented 5 months ago
konard@konard-MS-7982:~/Desktop/files-sync-test$ mkdir @deep-foundation/core
mkdir: cannot create directory ‘@deep-foundation/core’: No such file or directory
konard@konard-MS-7982:~/Desktop/files-sync-test$ mkdir -p @deep-foundation/core
konard@konard-MS-7982:~/Desktop/files-sync-test$ tree
.
└── @deep-foundation
    └── core

2 directories, 0 files
konard@konard-MS-7982:~/Desktop/files-sync-test$ 

@ivansglazunov приемлемо ли такое поведение для названий пакетов? Или вообще всех имён, которые содержат /?

так это описывает только связь через contain. что делать с остальными?

TimaxLacs commented 5 months ago
konard@konard-MS-7982:~/Desktop/files-sync-test$ cd @deep-foundation/core
konard@konard-MS-7982:~/Desktop/files-sync-test/@deep-foundation/core$ tee link.json << JSON
{
    "id": "@deep-foundation/core",
    "type": "@deep-foundation/core/Package",
}
JSON
{
    "id": "@deep-foundation/core",
    "type": "@deep-foundation/core/Package",
}
konard@konard-MS-7982:~/Desktop/files-sync-test/@deep-foundation/core$ echo "@deep-foundation/core" >> value.txt
konard@konard-MS-7982:~/Desktop/files-sync-test/@deep-foundation/core$ cd ../..
konard@konard-MS-7982:~/Desktop/files-sync-test$ tree
.
└── @deep-foundation
    └── core
        ├── link.json
        └── value.txt

2 directories, 2 files
konard@konard-MS-7982:~/Desktop/files-sync-test$ cat @deep-foundation/core/link.json
{
    "id": "@deep-foundation/core",
    "type": "@deep-foundation/core/Package",
}
konard@konard-MS-7982:~/Desktop/files-sync-test$ cat @deep-foundation/core/value.txt
@deep-foundation/core

@TimaxLacs @ivansglazunov что думаете о таком формате файла link.json и value.txt для String значений?

  1. разве link.json и value.txt не должны также быть и в папке @deep-foundation?
  2. понял, что ты имел под value
  3. и по аналогии с type и id можно будет добавить from, to и т.д. тогда можно будет, по идее, не делать отдельные папки для них, но что насчёт уникальных имен? Стоит ли в папке link.json также добавлять уникальный id связей?
Konard commented 5 months ago

We can use contained, links special folders to remove conflicts of names. Or we can use $.link.json and $.value.txt special names, and pull all link's folders directly to this link folder. When each link is a folder, then the probability of name conflict is quite low. We also can use rules for escaping special characters or names. As done in other tech.