문제

두 사용자가 편집 같은 위키의 항목,어떤 방법을 사용되었습에서 위키(또는 유사한 공동 편집 소프트웨어)병합하려면 두 번째 사용자의 편집과 함께 첫 번째?

내가 좋아하는 솔루션:

  • 이 필요하지 않 잠금
  • 을 잃지 않습니다 추가 페이지입니다.
  • 그것은 추가 할 수 있습니다 추가"상용구"텍스트 위치를 나타냅 다른 항목이 변경되었습니다.

(에 관심이 있어요할 수 있는 솔루션을 구현하는 데 사용됩 이 uservoice 아이디어 에 대한택 오버플로우가 발생합니다.)

도움이 되었습니까?

해결책

TWiki 자동으로 병합 동시 편집.

TWiki 허용 여러 개의 동시 사용자의 의 동일 항목은 다음 합 다른 자동으로 변경됩니다.당신은 아마도 통지하지 않습니다 이런 일이 없다면 충돌할 수 없는 병합된 자동으로 합니다.이 경우에는,당신이 볼 수있는 TWiki 삽입하"변경 마크"들을 강조하는 텍스트 사이의 충돌의 편집 및 다른 사람.이러한 변경을 표시하는 경우에만 사용 편집 동의 일부 항목에서 다른 사람으로,그리고 그들은 무엇을 나타내는 데 사용되는 텍스트처럼 보이 무엇이 다른 사람의 편집이 있었고,어떤 편집을 했다.

TWiki 은 경고를 편집하려고 주제는 다른 사람이 편집합니다.그것은 또한 경고하는 경우에는 병합되었는 동안 필요한다.

거기에는 또한 몇몇 문서 에서는 기능을 개발하는 방법을 자세히 설명하기로 합의한다.

기본적인 원리에서 내가 사용하는 코딩까지 mergeing 알고리즘이 있었다:

  1. 이 가능하다면 병합 사용하지 않고 충돌이 마커니다.
  2. 가능하면을 병합하여 충돌을 마커니다.
  3. 가능하지 않으면 병합하는,가장 최근 체크인 승리합니다.

는 점은 주목할 만한 가치가 있 TWiki 비슷한 기능을 Stack Overflow 에 대한 붕괴 이후의 개정이 동일한 사용자에 의해 특정 시간 내에 제한과이 해 발생하면 버그에서 일어나고과 함께 병합.

  1. 사용자는 편집 항목
  2. 사용자는 저장 rev N
  3. 사용자 B 편집 항목,선택 rev N
  4. 사용자는 편집 항목에서 다시 선택 rev N
  5. 사용자에 대한 변경 사항을 저장합니다;저장 보고는 변화가 내 ReplceIfEditiedWithin?창 그래서 증가하지 않 rev 번호
  6. 사용자 B,저장 코드 보고 rev 에 디스크가 변경되지 않기 때문이 시작 편집 그렇지 않을 감지하는 필요합니다.

또한 주목할만한 TWiki 경고 두 번째 사용자는 항목 인정:

그래서 나는 발명의 개념은"임대".할 때 항목이 편집,임대가 찍은 주제에 고정된 기간 동안의 시간을(기본값 1).는 경우 다른 사람이 하려고 편집하고,그들은 이미 그곳에 있는 임대에서 주제,하지만 멈추지 않는다 그들에게서 편집합니다.그렇지 않은 잠금,그것은 단지의 방법으로 조언한다.Mergeing 은 여전히 주요한 해결 메커니즘;임대가 순수하게 자문.는 경우 사용자 또는 플러그인을 선택하시에서 주제기 때문에 누군가가 임대 밖에 그것은,잘까지 플러그인입니다.

설명글에 TWiki.cfg 은 다음과 같습니다:

   # When a topic is edited, the user takes a "lease" on that topic.
   # If another user tries to also edit the topic while the lease
   # is still active, they will get a warning. The warning text will
   # be different depending on whether the lease has "expired" or
   # not i.e. if it was taken out more than LeaseLength seconds ago.

참고 임대 용어에 대해서만 개발자가 아닌 최종 사용자에게 제공합니다.

다른 팁

대부분의 Wiki 소프트웨어 (예 : MediaWiki)에 대한 나의 경험은 편집중인 문서의 버전을 추적한다는 것입니다. 시간 편집 중에 문서가 변경되면 변경이 거부되고 수동 병합을 수행하라는 메시지가 표시됩니다.

다른 데이터베이스 테이블에 사용자의 ID와 시간을 사용하여 "잠금"을 작성하고 시간을 삭제하고 사람이 저장하거나 X 분 후에 사람이 저장하거나 X 분 후에 "잠금"을 삭제할 수 있습니다. .

이런 식으로 누군가가 편집하려고 할 때 누군가가 이미 그것을하고있을 때. 남은 시간이 남아 있거나 다른 사람이 현재 게시물을 편집하고 있다고 말함으로써 메시지가 나타날 수 있습니다.

소스 제어 소프트웨어에서 사용하는 것과 같은 병합 알고리즘을 사용할 수 있습니다. 가독성을 유지하기 위해 단락 수준에서 변경 사항을 확인하고 싶을 것입니다.

잠재적 충돌이있는 경우 (예 : 동일한 단락을 편집하는 두 사용자)가있는 경우, 두 버전을 보일러 플레이트 텍스트와 함께 제시하거나 두 번째 및 후속 제출자에게 게시물의 내용이 제출 한 내용에서 변경되었을 수 있음을 알리면됩니다. .

글쎄, 나는 그것이 끔찍하고 끔찍한 생각이라고 생각합니다. 솔직히 말하면, 합병은 코드가 꽤 칙칙하며 최소한 고립 될 수있는 요소가 있습니다. 이것을하지 마십시오 - 인간 지능은 항상 더 나을 것입니다. 대신이 이점을 제공하지 않기 위해 제정신이 아닌 출력을 초래할 수있는 자동 솔루션으로 교체하려고합니다.

Twiki 답변을 연구하면서 나는 또한 발견했다 동기식 그것은 a 하위 에디션 스타일 브라우저 기반 동시 멀티 우스터 편집기. 2007 년 9 월경에 버려진 것 같지만 다운로드 할 수있는 소스 코드가 있습니다.

문서를 위해 : 도쿠키 편집 된 페이지에 15 분을 잠그고 편집을 미리 볼 때마다 갱신됩니다 (예 : 미리보기 또는 편집 시작에서 15 분).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top