ปลอดภัยที่จะมีโฟลเดอร์ /.svn/ ในเว็บไซต์สดหรือไม่ (วิธีการลบออก แต่ยังคงความสามารถในการปรับปรุง svn?)


10

ฉันกำลังปรับปรุง svn เพื่ออัปเดตรหัสสำหรับเว็บไซต์ php ของฉัน แต่จะทำให้.svn/โฟลเดอร์หายไป

ฉันคิดว่ามันอันตรายที่จะปล่อยให้ไฟล์เหล่านั้นอ่านได้แบบสาธารณะ แต่มันง่ายมากที่จะอัพเดทระบบ

มีวิธีใช้svn updateในการอัปเดตระบบ แต่ไม่ส่งออก.svn/โฟลเดอร์หรือไม่

คำตอบ:


21

หากคุณใช้ Apache:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

ที่จะบล็อกคนจากการเข้าถึง.svnไดเรกทอรีจากระยะไกล (ใช้เบราว์เซอร์) แต่คุณสามารถเก็บ (และความสามารถ svn) ในโครงการ

BTW คุณสามารถใช้แทน\.svnสำหรับ\.gitหรือ\.cvsถ้าคุณกำลังใช้บางสิ่งบางอย่างที่แตกต่างจากการโค่นล้ม


และสิ่งนี้จะบล็อกไดเรกทอรี. svn ทั้งหมดในเว็บไซต์หรือไม่ ฉันมีไดเรกทอรีย่อยมากมาย
siliconpi

ปัจจุบัน httpd.conf ของฉันมี <ไดเรกทอรี /> ตัวเลือก FollowSymLinks AllowOverride ทั้งหมด </Directory> ฉันสามารถเพิ่มสิ่งที่คุณเขียนด้านล่างนี้เป็นสิ่งแยกต่างหากหรือต้องรวมสองรายการเข้าด้วยกันหรือไม่
siliconpi

มันจะตรงกับไดเรกทอรีใด ๆ ที่เรียกว่า.svnใช่
coredump

คุณสามารถเพิ่มมันแยกต่างหาก
coredump


3

คุณต้องการส่งออกรหัสของคุณจาก SVN ไปยังเว็บไซต์สด ...

อย่าใช้svn updateเพื่อสิ่งนั้น การปรับปรุงมีไว้สำหรับใช้กับการอัปเดตสำเนาการทำงานไม่ใช่การส่งออกรหัส ใช้svn exportแทนขณะที่เอ็กซ์พอร์ตแผนผังไดเร็กทอรีแบบคลีนจากที่เก็บที่ระบุ

การ--forceตั้งค่าสถานะจะช่วยให้การส่งออกสามารถเขียนทับไฟล์ที่มีอยู่

SVN ส่งออกรายการด้วยตนเอง


ฉันเห็นอกเห็นใจถ้า OP ไม่ต้องการใช้exportเพราะมันเกี่ยวข้องกับการดึงสำเนาใหม่ทั้งหมดของพื้นที่เก็บข้อมูลซึ่งเป็นเรื่องที่ยุ่งยากถ้าเป็น repo ขนาดใหญ่บนการเชื่อมต่อขนาดเล็ก (พูดกับเว็บเซิร์ฟเวอร์ที่โฮสต์เซิร์ฟเวอร์ แต่ repo SVN ของคุณอยู่ในสำนักงานท้องถิ่นของคุณและแชร์โดยลิงก์ 1Mb) updateหมายความว่าคุณไม่จำเป็นต้องทำทุกสิ่งทุกครั้ง
Mark Henderson

จุดยุติธรรม บางทีการส่งออกไปยังสำเนาของไซต์ในท้องถิ่นจากนั้นเพียงแค่ส่งการเปลี่ยนแปลงข้ามไปยังเว็บเซิร์ฟเวอร์ระยะไกลจะทำงานในสถานการณ์นั้นได้หรือไม่ ฉันไม่เคยมีปัญหานั้นดังนั้นฉันจึงไม่ได้พิจารณา
gsreynolds

2

ฉันไม่นำพวกเขาไปสู่การผลิต / เว็บไซต์สด เพราะฉันไม่ต้องการให้ฉันและ / หรือนักพัฒนาอื่น ๆ ลืมว่ามันเป็นความคิดที่ดีที่จะแก้ไขรหัสสด สคริปต์การติดตั้งของฉันกรองไฟล์. svn ของฉันออก


@kerner - คุณจะอัพเดทได้อย่างไร
siliconpi

1
ทำไมไม่ใช้svn exportและไม่ต้องกรองพวกเขา?
pjmorse

ฉันมีสคริปต์การติดตั้งที่ฉันใช้สำหรับเว็บไซต์ของฉันและปรับแต่งเล็กน้อยเพื่อให้เหมาะกับแต่ละ มันมักจะทำสิ่งต่าง ๆ เช่นสร้างฐานข้อมูลตาราง db และผู้ใช้ db ตั้งค่าผู้ใช้หรือผู้ดูแลระบบเริ่มต้นเป็นต้นดังนั้นหากต้องการส่งออกไปยัง prod ผู้ใช้ prod (เป็นมนุษย์หรือสคริปต์) ตรวจสอบการทำงานของ svn คัดลอกไปที่อื่นตาม ~ / จากนั้นเรียกใช้สคริปต์การติดตั้งซึ่งเป็นสมาชิกของสำเนาการทำงานดังกล่าวจากนั้นเลือกที่จะลบสำเนาการทำงาน
ekerner

1

คุณควรมีลักษณะเป็นระบบการใช้งานที่เหมาะสมเช่นCapistrano ซึ่งหมายความว่าเซิร์ฟเวอร์ที่ใช้งานจริงของคุณไม่ต้องการการโค่นล้มและคุณสามารถปรับใช้กับเซิร์ฟเวอร์หลายเครื่องและเพิ่มตรรกะที่กำหนดเองเพื่อปรับใช้ นอกจากนี้ยังทำให้ง่ายต่อการย้อนกลับการปรับใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.