Что такое удобный для слияния формат для ввода текстовых токенов - PullRequest
4 голосов
/ 13 июля 2010

У меня есть список Excel (Excel 2003), где пользователь вводит переводы для токенов. Имеет 3 столбца (ключ, значение, язык). Это может быть что-то вроде ключа: Login.Header, значение: «Пожалуйста, войдите на сайт» язык: en.

Это работает довольно хорошо. Я использую этот файл для создания языковых изображений на веб-сайте, который использует много графики для текстов. Хорошо, что пользователи могут вводить текст без установки нового программного обеспечения, редактирование - это хорошо, и полученный файл может быть легко прочитан моим скриптом на python.

Есть одна мысль, которая мне не нравится: если 2 пользователя редактируют файл и имеют много изменений, слияние становится кошмаром.

Существует ли решение для редактирования, которое так же хорошо, как Excel, в описанных мною областях, но его легче объединить?

EDIT

В ответах, приведенных выше, объясняется, как система контроля источников может помочь в такой ситуации. Но у меня уже есть SVN на месте.

Вопрос по формату файла. Существуют форматы файлов, которые легко объединить с клиентом, такие как winmerge (например, исходный код для внутренних классов java или c #), и есть другие, которые сложно объединить (xml, файлы, созданные при генерации кода). xls - файлы Excel 2003 могут быть распознаны, но формат для объединения по-прежнему не подходит.

Я думаю, что есть другое приложение (что-то вроде apple works, open office, excel 2010 ..), которое позволяет мне редактировать таблицу, но ее можно объединить проще.

Ответы [ 6 ]

3 голосов
/ 21 июля 2010

Существует ли решение для редактирования, которое так же хорошо, как Excel, в описанных мною областях, но его легче объединить?

Возможно, не совсем ожидаемый ответ, но лучший способ избежать проблем слияния и конфликтов, очевидно, состоит в том, чтобы избегать слияния . Я хотел бы рассмотреть возможность совместного решения редактирования, чтобы избежать необходимости иметь дело с различными версиями файла:

  • Если все ваши пользователи находятся в одной сети (LAN, VPN), то первое решение, которое приходит на ум, - это поместить уникальный файл Excel в общий сетевой ресурс и активировать * 1012. * Общая рабочая книга опция. Это работает довольно хорошо, и в случае конфликта пользователям предлагается диалоговое окно разрешения конфликта.

  • Если это не вариант, возможно, вы могли бы разместить свою таблицу в Документах Google. Google Docs очень хорошо работает для совместной работы (легко настроить, кто может получить доступ к документу, вы можете увидеть список подключенных пользователей, версия для совместной работы просто работает). Затем просто экспортируйте электронную таблицу для обработки.

  • Используйте совместный текстовый редактор, например Gobby (мультиплатформенный), и работайте с необработанным CSV-файлом. Это не будет очень удобно для пользователя, особенно для технарей, и подвержено ошибкам. Я бы предпочел вышеуказанные решения.

3 голосов
/ 15 июля 2010

Один из подходов - экспортировать этот файл Excel в формате XML или CSV. Чем использовать Excel для редактирования текстового файла вместо двоичного формата по умолчанию xls.

Также рассмотрите возможность разделения одного большого файла на несколько файлов. Это уменьшает вероятность того, что два человека хотят работать над одним файлом.

Поставьте его под контроль источников и ознакомьте своих пользователей с основами контроля версий. Пусть пользователи будут отвечать за слияние файлов. SVN будет весьма разумным для этой задачи, поскольку это централизованное и не очень сложное решение. Используйте хороший GUI для обычных пользователей.

При наличии централизованного управления источниками вы можете ввести блокировку. Это позволяет вам запретить доступ на запись, как только один пользователь откроет файл, так что только один пользователь может редактировать файл одновременно.

1 голос
/ 15 июля 2010

Слияние часто является болью.Некоторые системы контроля версий могут сделать большую часть работы за вас, объединяя несогласованные изменения и предлагая пользователю, когда оба пытаются изменить один и тот же токен.

Черепаха (SVN или Hg) имеет функцию слияния, которая делает это безболезненным.Но я говорю как разработчик - у меня было довольно много трудностей с введением контроля версий не-разработчикам, даже компетентным, которые не используют свой лоток для CD в качестве подстаканника.:)

Возможно, вы захотите разбить один большой файл на несколько файлов.Это уменьшает вероятность того, что два человека хотят работать над одним файлом.Существует также возможность запрета доступа для записи, когда один пользователь открывает файл, так что только один пользователь может редактировать файл одновременно.

0 голосов
/ 21 июля 2010

Любой тип плоского файла будет довольно легко объединить.

Если вы хотите придерживаться Excel, не составит труда написать макрос, который будет экспортировать содержимое ячеек в плоский файл. Для удобства использования вы можете также сделать макрос и сохранить лист в собственном формате Excel для дальнейшего редактирования. Если вы поместили кнопку на лист и связали ее с макросом, пользователь может экспортировать и сохранить файл одним простым шагом, нажав кнопку.

0 голосов
/ 18 июля 2010

Позвольте пользователям использовать файл Excel, как сейчас, но храните данные в виде простого текстового файла (csv, вероятно) под контролем версий. Тогда вам просто нужно:

  • Один небольшой скрипт на python для преобразования текстового файла в Excel для предоставления пользователю.

  • Один небольшой скрипт на python, чтобы преобразовать законченный файл Excel обратно в текст. Для этого необходимо последовательно сортировать данные (например, по ключу и языку), чтобы упростить слияния.

0 голосов
/ 16 июля 2010

Малоизвестная / используемая функция Excel - это функция «Общая книга». Вы можете найти его в разделе Инструменты -> Поделиться книгой . Просто установите флажок «Разрешить изменения ...», и вы сможете выполнить точную настройку на вкладке «Дополнительно».

Это без исключения лучший вариант, когда несколько пользователей применяют изменения к рабочему листу, и работает в двух сценариях:

  1. Каждый скачивает копию XLS, редактирует на своей стороне и загружает обратно в какое-то место. Затем вы можете взять это и объединить с оригиналом.
  2. Каждый открывает одну и ту же копию XLS и одновременно редактирует. Затем вы можете объединить любые / все изменения.
...