> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/tr/destek/support-guides/full-project-history-migration.md).

# (v3.5.13 Geçişi) Tam proje geçmişi geçişi

## Tam proje geçmişi geçişi

Bu `3.5.x` Community Edition sürümü şunları içerir [Tam Proje Geçmişi özelliğini](https://www.overleaf.com/learn/latex/Using_the_History_feature) ki bu özellik SaaS teklifimizde zaten mevcuttur, [overleaf.com](http://overleaf.com/)

Örneğinizi Overleaf CE'ye yükselttikten sonra `3.5.13`, tüm yeni projeler varsayılan olarak Tam Proje Geçmişi'ni kullanacaktır. Mevcut projeler, bunlar taşınana kadar eski Geçmiş sistemini kullanmaya devam edecektir.

{% hint style="info" %}
Eğer `3.5.13` sürümüne yükseltir ve daha eski bir sürüme düşürmeye karar verirseniz, tam sistem yedeğinden geri yükleme yapmalısınız. Oluşturulan projelerin geçmişi `3.5.13` Overleaf CE'nin daha eski sürümleriyle uyumlu değildir.
{% endhint %}

Yeni Tam Proje Geçmişi, kullanıcılar için çeşitli iyileştirmeler getiriyor:

* İkili dosyalardaki değişiklikleri izler; bu, eski sistemde desteklenmez.
* Etiketli sürümler için destek vardır.
* Sistem genel olarak daha sağlamdır; veri kaybı olasılığı daha düşüktür.

Şuraya bakın [Tam Proje Geçmişi belgeleri](https://www.overleaf.com/learn/latex/Using_the_History_feature) tam proje geçmişi hakkında daha fazla bilgi için.

### Mevcut projeleri taşıma

{% stepper %}
{% step %}

#### Bir yedek oluşturun

Tam bir [yedek](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) örneğinizin, **mongo**, **redis** ve **sharelatex** dizinlerinin tutarlı bir anlık görüntüsüyle birlikte.
{% endstep %}

{% step %}

#### Güncelleyin

sharelatex/sharelatex imajının sürümünü 3.5.13'e güncelleyin.

Araç seti: şunu kullanın `$ bin/upgrade` araç setini en son sürüme yükseltmek için betiği kullanın ve şunu düzenleyin **config/version** 3.5.13'e.
{% endstep %}

{% step %}

#### Örneği başlatın

İdeal olarak, yedeğinizi geri yüklemeniz gerekebileceği durumda veri kaybını önlemek için, geçiş sürerken kullanıcıların örneğinize erişmesini engellemek istersiniz. Şuraya bakın [Çevrimdışı geçiş](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) bunu nasıl yapacağınız hakkında daha fazla bilgi için.
{% endstep %}

{% step %}

#### Tüm servisler çalışır duruma gelene kadar bekleyin

Tüm servisler çalışır duruma gelene kadar bekleyin (aşağıdaki komuta bakın)

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
web sharelatex çalışıyor (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### Geçiş betiğini çalıştırın

{% code overflow="wrap" %}

```bash
# Overleaf Toolkit kullanıcıları:
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"

# eski docker-compose.yml kullanıcıları:
$ docker exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"
```

{% endcode %}

`--force-clean` kısmen taşınmış proje geçmişi verilerini yeni sistemde temizler; bu, önceki denemelerde başarısız olan tekil projeler için geçişi yeniden denemeye olanak tanır;

`--fix-invalid-characters` yeni geçmiş sistemi tarafından desteklenmeyen yazdırılamayan karakterleri değiştirir;

`--convert-large-docs-to-file` 2MB düzenlenebilir boyut eşiğinin üzerindeki belgeleri düzenlenemez bir dosyaya dönüştürür)

Çıktı şu şekilde görünmelidir:

```bash
Taşınan Projeler  :  1
Toplam Proje      :  51
Kalan Projeler    :  51
Taşınacak toplam geçmiş kaydı: 98
Geçiş başlatılıyor...
Proje taşınıyor: 63d29b5772dd80015a81bffe
geçiş sonucu { upgraded: true, historyType: 'NoneWithoutConversion' }
Proje taşınıyor: 63d29c2e72dd80015a81c0a2
geçiş sonucu { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Geçiş tamamlandı
==================
Taşınan projeler:  51
Başarısız olan projeler:  0
Tamamlandı.
```

Geçiş başarılı olursa, çıkış kodunuz `0`olur ve son satırlar hiçbir başarısızlık olmadığını gösterir:

```bash
Başarısız olan projeler:  0
Tamamlandı.
```

Kullanıcılarınız için erişimi yeniden açabilirsiniz (bkz. sonraki adım). Başarısızlıklar varsa, lütfen aşağıdaki sorun giderme bölümüne bakın. Sorunlar hemen düzeltilmezse siteyi yine de yeniden açabilirsiniz ve taşınmamış projeler eski geçmiş sisteminde kalır.
{% endstep %}

{% step %}

#### Siteyi yeniden açın

Çevrimdışı bir geçiş yapmayı seçtiyseniz siteyi yeniden açmanız gerekir. Hâlâ oturum açmışsanız şunları yapmanız gerekir:

1. Şuna tıklayın: **Yönetici** düğmesine basın ve şunu seçin **Siteyi Yönet**
2. Şuna tıklayın: **Editörü Aç/Kapat** sekmesi
3. Şuna tıklayın: **Editörü yeniden aç** düğmesi

Tarayıcınızı kapattıysanız siteyi şununla yeniden başlatmanız gerekir `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Çevrimdışı geçiş

Geçmiş geçiş betiği çalışırken kullanıcıların oturum açabilmesini önlemek için lütfen şu adımları izleyin:

* Overleaf örneğinize bir yönetici hesabıyla giriş yapın
* Şuna tıklayın: **Yönetici** düğmesine basın ve şunu seçin **Siteyi Yönet**
* Şuna tıklayın: **Editörü Aç/Kapat** sekmesi
* Şuna tıklayın: **Editörü Kapat** düğmesi
* Şuna tıklayın: **Tüm kullanıcıların bağlantısını kes** düğmesi

Bu yapıldıktan sonra, oturum açmış olan tüm kullanıcılar bakım sayfasına yönlendirilecektir ve giriş sayfasını ziyaret eden yeni kullanıcılar bakım sayfasını görecek ve **olmayacak** oturum açabilecekler.

#### Çevrimiçi geçiş

Uygulama çalışmaya devam ederken geçiş betiklerini çalıştırmak mümkündür. Dikkate alınması gereken birkaç husus vardır:

* Geçiş süreci CPU açısından yoğundur; betik çalışırken kaynak kullanımını izlemelisiniz.
* Yüksek bir `--concurrency` değerinde, bazı servislerdeki olay döngüsü (`track-changes` özellikle) bir miktar bloklanma yaşayabilir; bu da kullanıcı deneyiminin düşmesine yol açar. Varsayılan `--concurrency=1` değeriyle başlamanızı öneririz.
* Betiği istediğiniz zaman durdurabilirsiniz. Yeniden başlatmak, bıraktığınız yerden geçişi sürdürür. Bu, geçişi daha az yoğun saatlerde (örn. gece) çalıştırmayı tercih etmeniz durumunda kullanışlıdır.

Önerimiz, siteyi kapatıp geçişi proje sayınız 1000 projeden az olduğunda (`db.projects.count()`) bakım penceresinde çevrimdışı olarak çalıştırmanızdır. Proje sayısı çok fazlaysa betiği çalıştırıp ilerlemesini izleyebilir, ardından kendi durumunuza göre çevrimiçi mi yoksa çevrimdışı mı devam edeceğinize karar verebilirsiniz.

#### Eski geçmiş verilerini temizleme

Eski geçmiş verilerini temizlemek için bir betik Server Pro'ya eklendi `3.5.6`, `4.0.6` ve `4.1.0`.

{% code overflow="wrap" %}

```bash
bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/history/clean_sl_history_data.js"
```

{% endcode %}

Betik, tüm projeler taşındıktan sonra çalıştırılabilir. Çevrimiçi bir geçiş sırasında biraz alan açmak için de kullanılabilir.

{% hint style="info" %}
3.5.13 sürümünden önceki Server Pro'da, betik şunların içeriğini siler: `docHistory` ve `docHistoryIndex` koleksiyonları. MongoDB, belgeleri sildikten sonra disk alanını serbest bırakmaz; bunun yerine bu alanı aynı koleksiyondaki gelecekteki belgeler için yeniden kullanır. Geçişten sonra bu koleksiyonlara artık hiçbir şey yazılmayacak, bu nedenle disk alanı kullanılmadan kalacaktır.

Disk alanını yeniden kullanılabilir hâle getirmek istiyorsanız Server Pro 3.5.13'e (hâlâ 3.x sürümünü kullanırken) veya Server Pro 4.2.5'e (4.x sürümünü kullanırken) yükseltip temizleme betiğini yeniden çalıştırabilirsiniz.

Server Pro'da yer alan temizleme betiği, şu sürümlerin en son yama sürümlerinde `3.5.x` ve en son `4.x.x` koleksiyonları son adım olarak siler.

Temizleme betiğini yeniden çalıştırmak güvenlidir.
{% endhint %}

### Sorun giderme

Sorun giderme tavsiyelerini buraya ekleyeceğiz. Normalde yalnızca Server Pro müşterilerine destek sunduğumuzu, ancak bu geçişin niteliği nedeniyle, tam proje geçmişi geçişine özgü sorunlar yaşayan CE müşterilerine de elimizden gelen en iyi desteği sağlayacağımızı lütfen unutmayın.

Tam proje geçmişi geçiş betiği başarısız olursa (yani bir hatayla çıkarsa veya sıfır olmayan sayıda başarısız proje yazdırırsa), lütfen aşağıdaki ayrıntıları e-posta ile destek ekibimize gönderin [support+historymigration@overleaf.com](mailto:support+historymigration@overleaf.com?subject=Full%20project%20history%20migration%20problem\&body=Instance%20Type%3A%20CE%20or%20Server%20Pro%20%28delete%20as%20appropriate%29%0A%0AInstallation%20Type%3A%20Overleaf%20toolkit%20or%20docker-compose.yml%20or%20other%20%28delete%20as%20appropriate%29%0A%0AScript%20output%3A%0A%0Abin%2Fdoctor%20output%20%28if%20using%20toolkit%29%3A%0A), şu ayrıntılarla:

Konu: Tam proje geçmişi geçiş sorunu

* Örnek Türü: CE veya Server Pro (uygun şekilde silin)
* Kurulum Türü: Overleaf toolkit veya `docker-compose.yml` veya diğer (uygun şekilde silin)
* Sürüm: 3.5.x (toolkit: `$ cat config/version`)
* Geçiş betiği çıktısı (bu, kapsayıcı içinde şu konumda bulunmalıdır `/overleaf/services/web`)
* Taşınan Projeler: (geçiş betiği çıktısına göre)
* Toplam Projeler: (geçiş betiği çıktısına göre)
* Kalan Projeler: (geçiş betiği çıktısına göre)
* Geçişin süresi:
* `bin/doctor` çıktı (toolkit kullanırken)
* Toolkit sürümü: `$ git rev-parse HEAD` (Toolkit kullanırken)

E-postaya servislerin `history-v1`, `project-history` ve `track-changes` günlük dosyalarını eklemeyi düşünün. Bunları şurada bulabilirsiniz `/var/log/sharelatex` içinde `sharelatex` kapsayıcı ve bunları şu şekilde dışa aktarın:

```bash
$ docker cp sharelatex:/var/log/sharelatex/history-v1.log history-v1.log
$ docker cp sharelatex:/var/log/sharelatex/project-history.log project-history.log
$ docker cp sharelatex:/var/log/sharelatex/track-changes.log track-changes.log
```

Lütfen bunları eklemeden önce günlük dosyalarındaki herhangi bir hassas bilgiyi karartın.

#### Bozuk dosya ağaçlarını bulma

Geçiş, bozuk bir dosya ağacına sahip projelerde başarısız olabilir (örneğin, dosya adlarının boş olduğu durumlarda). Bu sorunların bir listesini şunu kullanarak bulabilirsiniz `find_malformed_filetrees` veritabanındaki tüm projeleri kontrol eden betik:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
HATALI YOL: 123456789012345678901234 rootFolder.0.1.2.3
HATALI YOL: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

Geçersiz yolları düzeltmek için şunu kullanın `fix_malformed_filetree` betiğini, her hatalı yol için komutu bir kez çalıştırarak:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.1.2.3"
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.4.5.6"
...
```

{% endcode %}

#### Projeleri tam proje geçmişinden eski geçmişe düşürme

Tam proje geçmişine taşınmış ancak eski geçmişe geri dönmek istediğiniz bir proje varsa, şunu kullanın `downgrade_project` betiğini aşağıdaki gibi:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; PROJECT_ID=YOUR
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/tr/destek/support-guides/full-project-history-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
